Demrit

Miguel Vazquez Gocobachi

¿Cómo tener autoincrement en PostgreSQL?

Este es un punto interesante, si utilizas MySQL y en cierto momento te ves obligado a usar PostgreSQL o simplemente por gusto te encontraras con algunas diferencias ligeramente importantes, una de ellas es el autoincrement que manejas en MySQL y que en PostgreSQL requieres hacer algo diferente face-smile.png

Hay dos maneras de utilizar esta funcionalidad en PostgreSQL, la primera es crear una secuencia y la tabla, y la otra es asignarle directamente el tipo al campo de la tabla. En el ejemplo la tabla se llama "foo".

1.- Creando la secuencia y la tabla

CREATE SEQUENCE foo_id_seq;
CREATE  TABLE foo (
    id integer DEFAULT  NEXTVAL('foo_id_seq')NOT  NULL,
    name character varying(8)  NOT  NULL
);
 

2.- Creando la tabla con el tipo "serial" para el campo "id".
CREATE  TABLE foo (
    id serial,
    name character varying(8)  NOT  NULL
);
 

Interesante, ¿verdad? face-smile-big.png
Trackback URI: http://demrit.gnu.org.mx/index.php/trackback/3
Download Titan poker repg: Download Titan poker / Noviembre 13, 2:46pm
Download Titan poker

#1 Re:¿Cómo tener autoincrement en PostgreSQL?

hector2c, <E-Mail> / Noviembre 8, 1:39am  
avatar

hola, disculpa, soy nuevo, y del modo que dices, no me resulta, al insertar...

solo me salio creando la tabla en pgAdminIII y darle valor serial al campo incrementable...

pero al hacer la consulta a la tabla con el campo serial, me da error, cual crees que sea mi error??

del modo nro 2, como se inserta un registro?, el modo de consulta es el mismo?, espero me ayudes, estoy algo perdido de postgres, y como que me esta cayendo algo mal jeje, cuidate, saludos!

[ Responder (1) ]

#1.1 Re:Re:¿Cómo tener autoincrement en PostgreSQL?

Miguel Vazquez Gocobachi, <E-Mail> / Noviembre 13, 7:27pm  
avatar

Hola, gracias por el interes en visitar mi blog. Con respecto a como insertar, sería lo mismo, es decir por ejemplo:

INSERT INTO foo(name) VALUES('Demrit');

y para obtener el segundo registro seria:

SELECT * FROM foo WHERE id = 2;

Es simple y sencillo, espero que esto soluciones tus dudas. Pronto estaré publicando más información, estoy trabajando mucho con SQLite con triggers y otras cosas como Cascade, además de Store procedures con MySQL.

[ Responder (0) ]

Dejar un comentario

Escribe el código Captcha que estás viendo

Fuentes XML de comentario: RSS | Atom

Calendario del Blog

Noviembre 2008
Dom Lun Mar Mie Jue Vie Sab
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6
rss
atom