Re: INSERT requires SERIAL column?

Поиск
Список
Период
Сортировка
От Christopher Kings-Lynne
Тема Re: INSERT requires SERIAL column?
Дата
Msg-id GNELIHDDFBOCMGBFGEFOOEJCCBAA.chriskl@familyhealth.com.au
обсуждение исходный текст
Ответ на INSERT requires SERIAL column?  (otisg@ivillage.com)
Ответы Re: INSERT requires SERIAL column?  ("D'Arcy J.M. Cain" <darcy@druid.net>)
Список pgsql-sql
> Hello,
>
> I've got a table with these columns:
>
> user_id      SERIAL
>         CONSTRAINT pk_user_auth_user_id PRIMARY KEY,
> email        VARCHAR(64)    NOT NULL UNIQUE        ,
> password     VARCHAR(16)    NOT NULL        ,
> status       SMALLINT    NOT NULL DEFAULT 1
>
> But when I tried using the following INSERT statement I got an
> error about not being able to parse the input.
>
> INSERT INTO user_auth VALUES ('foo@example.com', 'password', 1);
>
> psql:../data/user_auth.dat:13: ERROR:  pg_atoi: error in
> "foo@example.com": can't parse "foo@example.com"
>
> So this indicates that an integer was expected as the first value.
>
> In order to get it to do what I want I had to use this:
>
> INSERT INTO user_auth VALUES (nextval('user_auth_user_id_seq'),
> 'foo@example.com', 'password', 1);
>
> Question:
> Is this really necessary or am I missing something?
> I thought specifying SERIAL columns is not neccessary in INSERT
> statements.

You need to specify the columns to insert into, skipping over the SERIAL
column:

INSERT INTO user_auth (email, password, status) VALUES ('foo@example.com',
'password', 1);

Chris



В списке pgsql-sql по дате отправления:

Предыдущее
От: otisg@ivillage.com
Дата:
Сообщение: INSERT requires SERIAL column?
Следующее
От: "D'Arcy J.M. Cain"
Дата:
Сообщение: Re: INSERT requires SERIAL column?