Как в MS Access введен специальный тип idenity или counter, так в MySQL и PostgreSQL можно использовать тип serial для автоматического создания последовательности связанной со столбцом таблицы. В MySQL также можно воспользоваться атрибутом столбца AUTO_INCREMENT в определении таблицы. Фактически, тип serial эквивалент определения BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. В PostgreSQL для последовательности типа serial используется целое в 4 байта (serial4). Если это кажется малым, можно воспользоваться типом serial8.
-- для MySQLCREATE TABLE tblname ( id integer unsigned AUTO_INCREMENT,... -- для MySQL и PostgreSQLcreate table tblseq(id serial,num double precision,constraint pk_tblseq primary key (id)); -- значение id будет устанавливаться автоматически-- следующим значениемinsert into tblseq(num) values(3.14);insert into tblseq(num) values(6.14);insert into tblseq(num) values(7.14);commit;
При разработке клиентских программ необходимо знать значение первичного ключа последней вставленной записи для позиционирования на нее. В PostgreSQL для этого есть функция lastval(), возвращающая самое последнее сгенерированное значение для какой-либо последовательности (не важно созданной через SEQUENCE, или через тип serial) в текущей сессии. В MySQL аналогичная функция называетсяLAST_INSERT_ID().