Respuestas:
dos opciones: Use el "datatype" SERIAL o cree una secuencia y use esta secuencia como valor predeterminado para su entero:
CREATE SEQUENCE your_seq;
CREATE TABLE foo(
id int default nextval('your_seq'::regclass),
other_column TEXT
);
INSERT INTO foo(other_column) VALUES ('bar') RETURNING *;
Si desea hacer esto en PGAdmin, es mucho más fácil que usar la línea de comando. Parece que en PostgreSQL, para agregar un incremento automático a una columna, primero necesitamos crear una secuencia de incremento automático y agregarla a la columna requerida. Me gustó esto.
1) En primer lugar, debe asegurarse de que haya una clave principal para su tabla. También mantenga el tipo de datos de la clave primaria en bigint o smallint. (Utilicé bigint, no pude encontrar un tipo de datos llamado serial como se menciona en otras respuestas en otro lugar)
2) Luego agregue una secuencia haciendo clic derecho en secuencia-> agregar nueva secuencia . Si no hay datos en la tabla, deje la secuencia como está, no realice ningún cambio. Solo guárdalo. Si hay datos existentes, agregue el último valor o el más alto en la columna de clave principal al valor Actual en la pestaña Definiciones como se muestra a continuación.
3) Finalmente, agregue la línea nextval('your_sequence_name'::regclass)
al valor predeterminado en su clave principal como se muestra a continuación.
Asegúrese de que el nombre de la secuencia sea correcto aquí. Esto es todo y el incremento automático debería funcionar.
SERIAL
?
GENERATED BY DEFAULT AS IDENTITY
introducida con Postgres> = 10.