pgAdmin je pouze GUI. Máte na mysli PostgreSQL , RDBMS .
omezení cizího klíče
, jako byste pouze vynucovali, že nelze použít žádnou hodnotu, která není přítomna v odkazovaném sloupci. Můžete použít ON UPDATE CASCADE
nebo ON DELETE CASCADE
k šíření změn z odkazovaného sloupce, ale nemůžete vytvářet nové řádky s tím, jak popisuješ. Máte špatný nástroj.
To, co popisujete, lze dosáhnout pomocí spouštěče
. Dalším, složitějším způsobem by bylo RULE
. Zde použijte spoušť.
V PostgreSQL potřebujete spouštěcí funkci , většinou pomocí plpgsql a spouštěč na stole, který toho využívá.
Něco jako:
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;
A spouštěč AFTER INSERT
na tbl1
:
CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();