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

From: Stefan Schwarzer <stefan(dot)schwarzer(at)grid(dot)unep(dot)ch>
To: Julius Tuskenis <julius(dot)tuskenis(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: How to INSERT empty line into SEQUENTIAL table from PHP
Date: 2008-06-16 08:32:59
Message-ID: CCA39AF2-B0E6-477D-A4AB-43A7DC5E520C@grid.unep.ch
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

True indeed... With

SELECT setval('page_input_id_seq', 89);

it works then with this:

INSERT INTO page_input (id, page, text_en, text_fr, text_es, text_ar)
VALUES (nextval('page_input_id_seq'::regclass), '', '', '', '', '')

Thanks a lot!!

Stef

> 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

Browse pgsql-general by date

  From Date Subject
Next Message Geoffrey 2008-06-16 13:05:06 Re: Advice for "hot-swapping" databases
Previous Message Julius Tuskenis 2008-06-16 08:03:31 Re: How to INSERT empty line into SEQUENTIAL table from PHP