pgAdmin е само GUI. Имате предвид PostgreSQL , RDBMS .
ограничение за чужд ключ
, като имате само налага, че не може да се използва никаква стойност, която не присъства в референтната колона. Можете да използвате ON UPDATE CASCADE
или ON DELETE CASCADE
за разпространение на промени от референтната колона, но не можете да създавате нови редове с това, както описваш. Имате грешен инструмент.
Това, което описвате, може да се постигне с тригер
. Друг, по-сложен начин би бил RULE
. Отидете със спусък тук.
В PostgreSQL се нуждаете от тригерна функция , използвайки предимно plpgsql и тригер на маса, която го използва.
Нещо като:
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;
И тригер AFTER INSERT
на tbl1
:
CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();