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

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?
