Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Table A
- -some_id
- Table B
- -another_id
- Table C
- -some_id_fk
- -another_id_fk
- CREATE TABLE a (a_id serial PRIMARY KEY, a text NOT NULL);
- CREATE TABLE b (b_id serial PRIMARY KEY, b text NOT NULL);
- CREATE TABLE ab (
- ab_id serial PRIMARY KEY
- , a_id int REFERENCES a ON DELETE SET NULL
- , b_id int REFERENCES b ON DELETE SET NULL
- , UNIQUE (a_id, b_id)
- );
- CREATE OR REPLACE FUNCTION trg_ab_upbef_nulldel()
- RETURNS trigger AS
- $func$
- BEGIN
- DELETE FROM ab WHERE ab_id = NEW.ab_id;
- RETURN NULL;
- END
- $func$ LANGUAGE plpgsql;
- CREATE TRIGGER upbef_nulldel
- BEFORE UPDATE OF a_id, b_id ON ab
- FOR EACH ROW
- WHEN (NEW.a_id IS NULL AND
- NEW.b_id IS NULL)
- EXECUTE PROCEDURE trg_ab_upbef_nulldel();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement