Hen*_*nda 5 postgresql triggers
我有一个保存客户的表,每个国家/地区只有一个客户,对于该表中的每一行,我必须创建一个新架构并复制一些表。像这样:
Clients table's columns:
client country
---------- -----------
john doe US
jane doe UK
Run Code Online (Sandbox Code Playgroud)
架构:
clients_US
clients_UK
Run Code Online (Sandbox Code Playgroud)
我需要创建一个触发器,以便每次将新客户端添加到客户端表时自动创建这些架构,并使用国家/地区列数据作为架构名称的一部分。
在完美的世界中,这是可行的,但显然不行:
CREATE OR REPLACE FUNCTION gcpmanager.create_sle_schema()
RETURNS trigger LANGUAGE plpgsql
AS
'begin
CREATE SCHEMA "clients_" + new.country
AUTHORIZATION postgres;
return new;
end;';
Run Code Online (Sandbox Code Playgroud)
小智 4
您将需要使用动态 SQL
CREATE OR REPLACE FUNCTION gcpmanager.create_sle_schema()
RETURNS trigger LANGUAGE plpgsql
AS
$$
begin
execute 'CREATE SCHEMA clients_'||new.country||' AUTHORIZATION postgres';
return new;
end;
$$
Run Code Online (Sandbox Code Playgroud)
顺便说一句:PostgreSQL 中的字符串连接运算符不是||(+即数字)
| 归档时间: |
|
| 查看次数: |
2191 次 |
| 最近记录: |