pgAdmin chỉ là GUI. Ý bạn là PostgreSQL , RDBMS .
ràng buộc khóa ngoại
, giống như bạn chỉ thực thi mà không có giá trị nào có thể được sử dụng, giá trị đó không có trong cột được tham chiếu. Bạn có thể sử dụng ON UPDATE CASCADE
hoặc ON DELETE CASCADE
để phổ biến các thay đổi từ cột được tham chiếu, nhưng bạn không thể tạo hàng mới với nó như bạn mô tả. Bạn đã chọn sai công cụ.
Những gì bạn mô tả có thể đạt được với trình kích hoạt
. Một cách khác, phức tạp hơn sẽ là RULE
. Đi với một trình kích hoạt ở đây.
Trong PostgreSQL, bạn cần có chức năng kích hoạt , chủ yếu sử dụng plpgsql và trình kích hoạt trên bàn có sử dụng nó.
Một cái gì đó như:
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;
Và một trình kích hoạt AFTER INSERT
trên tbl1
:
CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();