在 INSERT 到另一个 table 之后动态创建 table

Dynamically create table after INSERT to another table

我有一个 table:

create table monthly_tran (id int,somedata text);

一年中的每个月,table只会添加一行。 在向 table 插入一行后,我需要创建一个 new table:

create table monthly_proc_X(id int,tranid int,somedata text);

X in monthly_proc_X应该是新插入行的id table monthly_tran.
例如,如果插入 (9,'some values'),则应创建 table monthly_proc_9

注:PostgreSQL 9.2

您可以像这样创建触发器

CREATE OR REPLACE FUNCTION dynTable() RETURNS TRIGGER AS $$
    BEGIN
execute 'create table monthly_proc_'||new.id||'(id int,tranid int,somedata text)';
return new;
    END;
$$ LANGUAGE plpgsql;

并分配给monthly_tran

CREATE TRIGGER tgr_create_table AFTER INSERT ON monthly_tran
FOR EACH ROW EXECUTE PROCEDURE dynTable();

触发器 dynTable() 将在向 monthly_tran

插入新行时动态创建 table