Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > аналог mysql auto_increment в Postgresql


Автор: americanets 30.1.2008, 23:45
как сделать аналог mysql' го auto_increment  в Postgresql

пытался сделать так 
Код


CREATE SEQUENCE pages_pageid_seq;
CREATE TABLE  pages (

   pageid integer DEFAULT nextval('pages_pageid_seq') NOT NULL,
   website_title text,
   website_description text,
   primary key (pageid)
);


но при 
Код


INSERT INTO pages (website_title,website_description) VALUE('dsdsds','sdsdsd') 


пишет что уникальный ключ уже есть, а не вставляет новый id как в MySql 
или нужно каждый раз вычислять уникальный номер для записи (MAX) и вставлять его "вручную" ? 



Автор: gta4kv 31.1.2008, 07:54
попробуйте :
Код

INSERT INTO pages (pageid,website_title,website_description) VALUE(NULL,'dsdsds','sdsdsd') 

Автор: americanets 31.1.2008, 10:37
ругается на null

Код


Query failed: ERROR: null value in column "pageid" violates not-null constraint in ...\lib\DB\PostgreSql.php on line 55


Автор: americanets 31.1.2008, 13:25
вобщем нужно было так


Код

CREATE TABLE  pages (
   pageid SERIAL,
   website_title text,
   website_description text
);




и в изначальном дампе убрать pageid чтоб они сразу автоматом делались

Код

INSERT INTO pages(website_title,website_description) VALUES('первая','первая');
INSERT INTO pages(website_title,website_description) VALUES('Вторая','первая');

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)