Reliability of CURRVAL in a RULE

Поиск
Список
Период
Сортировка
От Nick
Тема Reliability of CURRVAL in a RULE
Дата
Msg-id 93c5ec95-e6da-4f0a-8b43-2a55d331e5d3@b38g2000prf.googlegroups.com
обсуждение исходный текст
Ответы Re: Reliability of CURRVAL in a RULE  (Richard Huxton <dev@archonet.com>)
Список pgsql-hackers
Is the use of CURRVAL in this example reliable in heavy use?

CREATE TABLE users ( id SERIAL NOT NULL, email VARCHAR(24) DEFAULT NULL, PRIMARY KEY (id)
);
CREATE TABLE users_with_email ( id INTEGER NOT NULL
);
CREATE RULE add_email AS ON INSERT TO users WHERE (NEW.email IS NULL)
DO INSERT INTO users_with_email (id) VALUES (CURRVAL('users_id_seq'));

I tried...

CREATE RULE add_email AS ON INSERT TO users WHERE (NEW.email IS NULL)
DO INSERT INTO users_with_email (id) VALUES (NEW.id);

which was incrementing the sequence twice. Should I be using a trigger
instead? This rule seems quite simple and easy enough... if reliable. -
Nick


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

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: Automatic Client Failover
Следующее
От: Richard Huxton
Дата:
Сообщение: Re: Reliability of CURRVAL in a RULE