pgAdmin hanyalah GUI. Maksud Anda PostgreSQL , RDBMS .
batasan kunci asing
, seperti Anda hanya memberlakukan bahwa tidak ada nilai yang dapat digunakan, yang tidak ada di kolom yang direferensikan. Anda dapat menggunakan ON UPDATE CASCADE
atau ON DELETE CASCADE
untuk menyebarkan perubahan dari kolom yang direferensikan, tetapi Anda tidak dapat membuat baris baru dengan itu seperti yang Anda gambarkan. Anda mendapatkan alat yang salah.
Apa yang Anda gambarkan dapat dicapai dengan pemicu
. Cara lain yang lebih rumit adalah RULE
. Gunakan pemicu di sini.
Di PostgreSQL Anda memerlukan fungsi pemicu , kebanyakan menggunakan plpgsql , dan pemicu di atas meja yang memanfaatkannya.
Sesuatu seperti:
CREATE OR REPLACE FUNCTION trg_insert_row_in_tbl2()
RETURNS trigger AS
$func$
BEGIN
INSERT INTO tbl2 (my_id, col1)
VALUES (NEW.my_id, NEW.col1) -- more columns?
RETURN NEW; -- doesn't matter much for AFTER trigger
END
$func$ LANGUAGE plpgsql;
Dan pemicu AFTER INSERT
di tbl1
:
CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();