Re: INSERT question

Поиск
Список
Период
Сортировка
От Jason Earl
Тема Re: INSERT question
Дата
Msg-id 878zd7vpzn.fsf@npa01zz001.simplot.com
обсуждение исходный текст
Ответ на Re: INSERT question  ("Wilco Boschman" <w.boschman@xs4all.nl>)
Ответы Re: INSERT question  (Roland Roberts <roland@astrofoto.org>)
Список pgsql-sql
Yikes!  Don't do that.  For one thing:

SELECT max(primary_key) FROM parent_table;

Will not use the index in PostgreSQL.  If you want to get the maximum
value of an indexed column it is far better to write something like
this:

SELECT primary_key FROM parent_table ORDER BY primary_key DESC LIMIT 1;

Yes, it takes longer to type, but it will use the index and return
your results immediately.

Even better, however, is to use the functions nextval() and currval()
like so:

INSERT INTO parent_table (data) values ('some data');
INSERT INTO child_table (parent, more_data)        (currval('parent_table_p_key_seq'),         'more data');

Jason

"Wilco Boschman" <w.boschman@xs4all.nl> writes:

> Insert the row into the parent table (the one with the primary key),
> then do a select max(<serial-column>) from parent_table; This will
> give you the greatest number in the table, that is if everything
> went ok the number from the row you just inserted. Then insert the
> row(s) into the second table and use the value you got from the
> parent table in the foreign key
> 
> cheers
> 
> Wilco
> 
> "Brian" <Brian@McSweeney.iol.ie> schreef in bericht
> news:1f5f2b44.0111130130.17e8e57a@posting.google.com...
> | Hi everyone,
> | I've a little question about using insert statements. I've got a
> | parent table with a "serial" (automatically incrementing integer)
> | primary key. I have a child table with a foreign key which references
> | that primary key. My question is:
> |
> | To insert values into the child table corresponding to an entry in the
> | parent table, how do I get a reference to the serial primary key (so
> | as I can reference it for the foreign key entry)
> |
> | Hope you understand what I mean. This should be a regular occurance
> | and seeing as I'm not an sql guru, I just don't have a clue!
> |
> | Any help would be SOOO appreciated.
> | Brian
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
> 
> http://archives.postgresql.org


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: How to best grab a chunk of Ids from a sequence
Следующее
От: "Ross J. Reedstrom"
Дата:
Сообщение: Re: problem: index on number not honoured