Postgresql
對於每個插入的行,使用 PostgreSQL 中的 AFTER INSERT 觸發器在另一個表中生成一系列行
假設客戶下了一定數量的訂單,我想將此資訊插入到
table1
初始狀態中。同時,我想在 中生成一系列行,table2
並結合新生成的 ID 在table1
. 必須為每個新訂單執行。像:*``` Table 1 columns - id ,qty A1 25 A2 32
生成:
Table 2 column - sub_id A1_1 A1_2 . . A1_25 A2_1 A2_2 . . A2_32
*您可以使用插入後觸發器輕鬆實現目標。首先,您需要創建一個觸發器函式,該函式將從 table1 中收集新添加的行的資訊,並將生成一系列 ID 並將其插入到 table2 中。
CREATE OR REPLACE FUNCTION after_insert_table1() RETURNS trigger AS $$ BEGIN insert into table2 SELECT CONCAT(new.id,'_',generate_series(1, new.qty)) as sub_id; RETURN NEW; END; $$ LANGUAGE 'plpgsql';
然後您需要在 table1 上創建觸發器,該觸發器將呼叫觸發器函式。
CREATE TRIGGER InsertIntoTable2 AFTER INSERT ON table1 FOR EACH ROW execute procedure after_insert_table1()
此觸發器將使用唯一 sub_id 將五行插入到 table2 中,以便將語句插入 table1 值 (‘A1’,5);
從表 1 中選擇 *
從表 2 中選擇 **