pgAdmin es solo la GUI. Te refieres a PostgreSQL , el RDBMS .
Una restricción de clave externa
, como si solo hiciera cumplir que no se puede usar ningún valor, que no está presente en la columna a la que se hace referencia. Puedes usar ON UPDATE CASCADE
o ON DELETE CASCADE
para propagar los cambios desde la columna a la que se hace referencia, pero no puede crear nuevas filas con eso como lo describes. Tienes la herramienta equivocada.
Lo que describe podría lograrse con un disparador
. Otra forma más compleja sería una RULE
. Vaya con un gatillo aquí.
En PostgreSQL, necesita una función de activación , principalmente usando plpgsql y un activador sobre una mesa que hace uso de ella.
Algo como:
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;
Y un activador AFTER INSERT
en tbl1
:
CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();