在 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
我有一个 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