pgAdmin é apenas a interface gráfica. Você quer dizer PostgreSQL , o RDBMS .
Uma restrição de chave estrangeira , como você apenas impõe que nenhum valor pode ser usado, que não está presente na coluna referenciada. Você pode usar
ON UPDATE CASCADE
ou ON DELETE CASCADE
para propagar as alterações da coluna referenciada, mas você não pode criar novas linhas com ele como você descreve. Você pegou a ferramenta errada. O que você descreve pode ser alcançado com um trigger . Outra maneira mais complexa seria uma
RULE
. Vá com um gatilho aqui. No PostgreSQL você precisa de uma função de gatilho , principalmente usando plpgsql e um gatilho em uma mesa que faz uso dele.
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;
E um gatilho
AFTER INSERT
em tbl1
:CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();