sql >> Database teknologi >  >> RDS >> PostgreSQL

På INSERT til en tabel INSERT data i tilsluttede tabeller

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 INSERTtbl1 :

CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();


  1. Trigger i SQL

  2. Brug Single Row Query med MySQL og PHP

  3. Sådan opretter du indlejret tabel ved hjælp af brugerdefineret datatype i Oracle-databasen

  4. mysql-indsættelse efter sletning mislykkes på grund af dobbeltindtastning