Re: How to INSERT empty line into SEQUENTIAL table from PHP

From: Julius Tuskenis <julius(dot)tuskenis(at)gmail(dot)com>
To: Stefan Schwarzer <stefan(dot)schwarzer(at)grid(dot)unep(dot)ch>
Cc: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: How to INSERT empty line into SEQUENTIAL table from PHP
Date: 2008-06-16 08:03:31
Message-ID: 48561E53.2020805@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I guess you get duplicate value error because you have previously
inserted ID column with your own values. Check the sequence
page_input_id_seq if it points to the right next value. If not - correct
it to a MAX(ID) +1

Julius Tuskenis

Stefan Schwarzer rašė:
> It doesn't work like this:
>
> INSERT INTO page_input (id, page, text_en, text_fr, text_es,
> text_ar) VALUES (NULL, '', '', '', '', '')
>
> --> ERROR: null value in column "id" violates not-null constraint
>
> nor like this:
>
> INSERT INTO page_input (page, text_en, text_fr, text_es, text_ar)
> VALUES ('', '', '', '', '')
>
> --> ERROR: duplicate key value violates unique constraint "id_unique"
>
> nor like this:
>
> INSERT INTO page_input (id, page, text_en, text_fr, text_es,
> text_ar) VALUES (nextval('page_input_id_seq'::regclass), '', '', '',
> '', '')
>
> --> ERROR: duplicate key value violates unique constraint "id_unique"
>
>
>
> On Jun 16, 2008, at 8:54 AM, Julius Tuskenis wrote:
>
>> Hi, Stefan.
>>
>> your second example should work for you.
>> INSERT INTO table_xx (field2, field3, field4) VALUES ('', '', '');
>> (keeping in mind, that your ID column is of type serial or has
>> DEFAULT NEXTVAL('some_sequence') ).
>> You can also insert values yourself:
>> INSERT INTO table_xx (ID, field2, field3, field4) VALUES
>> (NEXTVAL('some_sequence'), '', '', '');
>>
>> Julius Tuskenis
>>
>>
>>
>> Stefan Schwarzer rašė:
>>> Hi,
>>>
>>> rahter dump question, I guess....
>>>
>>> But I have a table with a sequential index field, into which I would
>>> like to add from time to time another line (via webbrowser), which
>>> in turn, stays first empty, before it's being filled in later (via
>>> webbrowser).
>>>
>>> Because the ID field is sequential and indexed, I can't use
>>>
>>> INSERT INTO table_xx (ID, field2, field3, field4) VALUES ('', '',
>>> '', '');
>>>
>>> neither (skipping ID because it should be filled in automatically):
>>>
>>> INSERT INTO table_xx (field2, field3, field4) VALUES ('', '', '');
>>>
>>> How am I supposed to do it?
>>>
>>> Thanks for any hints,
>>>
>>> Stef
>>>
>>>
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Stefan Schwarzer 2008-06-16 08:32:59 Re: How to INSERT empty line into SEQUENTIAL table from PHP
Previous Message Stefan Schwarzer 2008-06-16 07:56:28 Re: How to INSERT empty line into SEQUENTIAL table from PHP