Re: Is a SERIAL column a "black box", or not?

Поиск
Список
Период
Сортировка
От Mark Dilger
Тема Re: Is a SERIAL column a "black box", or not?
Дата
Msg-id 4454E27D.2090503@markdilger.com
обсуждение исходный текст
Ответ на Is a SERIAL column a "black box", or not?  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Is a SERIAL column a "black box", or not?  (mark@mark.mielke.cc)
Список pgsql-hackers
Tom Lane wrote:
> 1. A serial column is a "black box" that you're not supposed to muck with
> the innards of.  This philosophy leads to the proposal that we disallow
> modifying the column default expression of a serial column, and will
> ultimately lead to thoughts like trying to hide the associated sequence
> from direct access at all.

It would be madness to prevent people from accessing the associated sequence.
Assume the following schema:
  CREATE TABLE a (a_id SERIAL NOT NULL UNIQUE, ...);  CREATE TABLE b (a_fk INTEGER REFERENCES a(a_id), ...);

Now, if I need to insert into both tables a and b, how do I do it?  After
inserting into table a, if I can't access the sequence to get currval, I'll need
to do a select against the table to find the row that I just inserted (which
could be slow), and if the columns other than a_id do not uniquely identify a
single row, then I can't do this at all.

mark


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

Предыдущее
От: Bruno Wolff III
Дата:
Сообщение: Re: Is a SERIAL column a "black box", or not?
Следующее
От: Tom Lane
Дата:
Сообщение: Altering view ownership doesn't work ...