Отправляет email-рассылки с помощью сервиса Sendsay

Не в Тему: не получается postrgresql sequence.

В клиенте postgresql:

CREATE SEQUENCE

nextval('test_id_seq'), name VARCHAR); ERROR: column
"'test_id_seq'" does not exist

Почему?

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28051; Возраст листа: 1162; Участников: 1708
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/595684

Ответить   Strong Fri, 29 Sep 2006 22:42:42 +0700 (#595684)

 

Ответы:

В сообщении от 1159558962 секунд после начала Эпохи Strong написал(а):

CREATE TABLE test (foobar INTEGER NOT NULL PRIMARY KEY, name VARCHAR);

Ответить   Konstantin Korikov Fri, 29 Sep 2006 19:28:28 +0300 (#595706)

 

On Fri, 29 Sep 2006 19:28:28 +0300 Konstantin Korikov
<lostcl***@i*****.ua> wrote:

VARCHAR);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"test_pkey" for table "test" CREATE TABLE

foobar | name
--------+(0 rows)

ERROR: null value in column "foobar" violates not-null constraint

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28061; Возраст листа: 1165; Участников: 1704
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/596119

Ответить   Strong Mon, 2 Oct 2006 01:52:56 +0700 (#596119)

 

В сообщении от 1159743176 секунд после начала Эпохи Strong написал(а):

Прошу прощения.

CREATE TABLE test (foobar SERIAL NOT NULL PRIMARY KEY, name VARCHAR);

Ответить   Konstantin Korikov Mon, 2 Oct 2006 02:48:23 +0300 (#596133)

 

On Mon, 2 Oct 2006 02:48:23 +0300 Konstantin Korikov
<lostcl***@i*****.ua> wrote:

Спасибо.

А как мне из perl работать с sequence? Я читал док-цию по DBI/DBD::Pg и
нашёл следущее:

$dbh->do("CREATE TABLE lii (
foobar INTEGER NOT NULL UNIQUE DEFAULT
nextval('lii_seq'), baz VARCHAR)");
$SQL = "INSERT INTO lii(baz) VALUES (?)";
$sth = $dbh->prepare($SQL);
for (qw(uno dos tres cuatro)) {
$sth->execute($_);
my $newid =

print "Last insert id was $newid\n"; }

И обяснение к ней туманное:
Attempts to return the id of the last value to be inserted into a
table. You can either provide a sequence name (preferred) or provide a
table name with optional schema. The $catalog and $field arguments are
always ignored.

А ещё это может и некорректно работать:
This will fail if the sequence has not yet been used in the current
database connection.

Интерпритатор "ругается" на C<undef>, да и мне кажется, что функция
last_insert_id - это лишний запрос к БД, так ли это? А т.к. она может и
некорректно работать, то, может, логичней будет делать собственный
запрос для получения id новой записи, если оно определяемо однозначно?

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28064; Возраст листа: 1166; Участников: 1707
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/596487

Ответить   Strong Tue, 3 Oct 2006 02:40:38 +0700 (#596487)