viernes, 16 de enero de 2009

Autoincrementable en PostgreSQL

Solo tenemos que crear el campo que queramos que se autoincremente como Serial.

Ejemplo:

CREATE TABLE foo (
id serial,
name character varying(8) NOT NULL
);

Si insertamos 3 tuplas:

postgres=# insert into foo(name) values ('a');
INSERT 21591 1
postgres=# insert into foo(name) values ('b');
INSERT 21592 1
postgres=# insert into foo(name) values ('c');
INSERT 21593 1
postgres=# select * from foo;
id | name
----+------
1 | a
2 | b
3 | c

Comprobamos que se autoincrementa sola!.

Si consultamos la tabla foo, vemos que postgreSql genera el código interno para que se autoincremente.

postgres-# \d foo
Tabla "public.foo"
Columna | Tipo | Modificadores
---------+-------------------+-----------------------------------------------------
id | integer | not null default nextval('public.foo_id_seq'::text)
name | character varying |


Comprobado sobre postgreSQL 7.4
palyginti kainas