pgAdmin er kun GUI. Du mener PostgreSQL , RDBMS .
En fremmednøglebegrænsning
, ligesom du kun har håndhæver, at ingen værdi kan bruges, som ikke er til stede i den refererede kolonne. Du kan bruge ON UPDATE CASCADE
eller ON DELETE CASCADE
for at udbrede ændringer fra den refererede kolonne, men du kan ikke oprette nye rækker med det som du beskriver. Du har det forkerte værktøj.
Det, du beskriver, kunne opnås med en trigger
. En anden, mere kompleks måde ville være en RULE
. Gå med en trigger her.
I PostgreSQL har du brug for en triggerfunktion , for det meste bruger plpgsql , og en trigger på et bord, der gør brug af det.
Noget som:
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;
Og en trigger AFTER INSERT
på tbl1
:
CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();