Autoincremento de PostgreSQL
Estoy cambiando de MySQL a PostgreSQL y me preguntaba cómo puedo hacer valores de autoincremento. Vi en los documentos de PostgreSQL un tipo de datos "serial", pero me da errores de sintaxis cuando se utiliza (en v8.0).
553
3
Sí, SERIAL es la función equivalente.
SERIAL es sólo una macro de creación de tiempo de la tabla en torno a las secuencias. No se puede alterar SERIAL en una columna existente.
Puede utilizar cualquier otro tipo de dato entero, como
smallint
.Ejemplo :
Es mejor utilizar su propio tipo de datos, en lugar del usuario [tipo de datos en serie] (http://www.postgresql.org/docs/9.1/static/datatype-numeric.html#DATATYPE-SERIAL).
En el contexto de la pregunta formulada y en respuesta al comentario de @sereja1c, la creación de
SERIAL
crea implícitamente secuencias, por lo que para el ejemplo anterior-CREATE TABLE
crearía implícitamente la secuenciafoo_id_seq
para la columna serialfoo.id
. Por lo tanto,SERIAL
[4 Bytes] es bueno por su facilidad de uso a menos que necesite un tipo de datos específico para su id.