Re: INSERT requires SERIAL column? - Mailing list pgsql-sql

From Christopher Kings-Lynne
Subject Re: INSERT requires SERIAL column?
Date
Msg-id GNELIHDDFBOCMGBFGEFOOEJCCBAA.chriskl@familyhealth.com.au
Whole thread Raw
In response to INSERT requires SERIAL column?  (otisg@ivillage.com)
Responses Re: INSERT requires SERIAL column?  ("D'Arcy J.M. Cain" <darcy@druid.net>)
List 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 by date:

Previous
From: otisg@ivillage.com
Date:
Subject: INSERT requires SERIAL column?
Next
From: "D'Arcy J.M. Cain"
Date:
Subject: Re: INSERT requires SERIAL column?