pgAdmin är bara GUI. Du menar PostgreSQL , RDBMS .
En restriktion för främmande nyckel
, som du bara har tvingar fram att inget värde kan användas, som inte finns i den refererade kolumnen. Du kan använda ON UPDATE CASCADE
eller ON DELETE CASCADE
för att sprida ändringar från den refererade kolumnen, men du kan inte skapa nya rader med det som du beskriver. Du har fel verktyg.
Det du beskriver kan uppnås med en trigger
. Ett annat, mer komplext sätt skulle vara en RULE
. Gå med en trigger här.
I PostgreSQL behöver du en triggerfunktion , mestadels med plpgsql , och en trigger på ett bord som använder det.
Något i stil med:
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;
Och en trigger AFTER INSERT
på tbl1
:
CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();