Re: Using nextval(seq) in more than one column

Поиск
Список
Период
Сортировка
От Greg Sabino Mullane
Тема Re: Using nextval(seq) in more than one column
Дата
Msg-id 73cff0cd220e50df5b5ba526fb4caba7@biglumber.com
обсуждение исходный текст
Ответ на Using nextval(seq) in more than one column  (Sean Davis <sdavis2@mail.nih.gov>)
Ответы Re: Using nextval(seq) in more than one column
Список pgsql-novice
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160


- -- A few ideas:

CREATE DATABASE sean;

\c sean

BEGIN;

SET client_min_messages = 'error';

CREATE SEQUENCE asdf1_seq;
CREATE TABLE asdf1 (
id INT NOT NULL PRIMARY KEY DEFAULT nextval('asdf1_seq'),
foo TEXT
);

CREATE VIEW asdf AS SELECT *, 'ASDF-'||id AS asdf FROM asdf1;

INSERT INTO asdf1(foo) VALUES ('a view');

SELECT * FROM asdf;

CREATE SEQUENCE asdf2_seq;

CREATE TABLE asdf2 (
id INT NOT NULL PRIMARY KEY DEFAULT nextval('asdf2_seq'),
asdf TEXT,
foo TEXT
);

CREATE FUNCTION update_asdf()
RETURNS TRIGGER
LANGUAGE plpgsql
AS $_$ BEGIN NEW.asdf = 'ASDF-'||NEW.id; RETURN NEW; END $_$;

CREATE TRIGGER asdf_trigger BEFORE INSERT OR UPDATE ON asdf2
FOR EACH ROW EXECUTE PROCEDURE update_asdf();

INSERT INTO asdf2(foo) VALUES ('a trigger');

SELECT * FROM asdf2;


CREATE SEQUENCE asdf3_seq;

CREATE TABLE asdf3 (
id INT NOT NULL PRIMARY KEY DEFAULT nextval('asdf3_seq'),
asdf TEXT NOT NULL DEFAULT 'ASDF-' || currval('asdf3_seq'),
foo TEXT
);

INSERT INTO asdf3(foo) VALUES ('currval hack');

SELECT * FROM asdf3;

CREATE SEQUENCE asdf4_seq;

CREATE TABLE asdf4 (
id INT NOT NULL PRIMARY KEY DEFAULT nextval('asdf4_seq'),
asdf TEXT,
foo TEXT
);

CREATE RULE asdf_rule AS ON INSERT TO asdf4
DO ALSO UPDATE asdf4 SET asdf='ASDF-'||id
WHERE id=currval('asdf4_seq');

INSERT INTO asdf4(foo) VALUES ('a rule');

SELECT * FROM asdf4;

ROLLBACK;

- --
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 200710101159
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iD8DBQFHDPbivJuQZxSWSsgRA//fAJ9N91CgJJuMJJcxvyIbgiXYHPfCnQCg5Ahi
OdQTM77u4ZZuWDD6I3TqyIE=
=yCf4
-----END PGP SIGNATURE-----



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

Предыдущее
От: "A. Kretschmer"
Дата:
Сообщение: Re: Using nextval(seq) in more than one column
Следующее
От: Nis Jørgensen
Дата:
Сообщение: Re: Using nextval(seq) in more than one column