postgresql 触发器将姓氏和名字与 pgadmin 连接起来
postresql trigger to join lastname and firstname with pgadmin
我已经使用 PgAdmin4 尝试过这个触发器; (我认为这个 GUI 有一些错误)
我的触发器是:
CREATE TRIGGER name_update BEFORE UPDATE ON customer
FOR EACH ROW
BEGIN
SET NEW.name = CONCAT_WS(', ', NEW.lastname, NEW.firstname);
END;
CREATE TRIGGER name_insert BEFORE INSERT ON customer
FOR EACH ROW
BEGIN
SET NEW.name = CONCAT_WS(', ', NEW.lastname, NEW.firstname);
END;
但我收到此错误:
我试过删除开始和结束,但没有任何反应,也许我必须在 shell 或 txt 文件中尝试?在 pgadmin 之外执行此操作并在 mysql 中管理马车 returns 的最佳方法是什么我曾经在 shell.
上使用分隔符
您需要创建过程并在触发器中调用她。示例:
create or replace function trigger_function()
returns trigger as
$$
begin
NEW.name = CONCAT_WS(', ', NEW.lastname, NEW.firstname);
return NEW;
end;
$$
language plpgsql;
CREATE TRIGGER name_update
BEFORE UPDATE ON customer
FOR EACH ROW
EXECUTE PROCEDURE trigger_function();
我已经使用 PgAdmin4 尝试过这个触发器; (我认为这个 GUI 有一些错误)
我的触发器是:
CREATE TRIGGER name_update BEFORE UPDATE ON customer
FOR EACH ROW
BEGIN
SET NEW.name = CONCAT_WS(', ', NEW.lastname, NEW.firstname);
END;
CREATE TRIGGER name_insert BEFORE INSERT ON customer
FOR EACH ROW
BEGIN
SET NEW.name = CONCAT_WS(', ', NEW.lastname, NEW.firstname);
END;
但我收到此错误:
我试过删除开始和结束,但没有任何反应,也许我必须在 shell 或 txt 文件中尝试?在 pgadmin 之外执行此操作并在 mysql 中管理马车 returns 的最佳方法是什么我曾经在 shell.
上使用分隔符您需要创建过程并在触发器中调用她。示例:
create or replace function trigger_function()
returns trigger as
$$
begin
NEW.name = CONCAT_WS(', ', NEW.lastname, NEW.firstname);
return NEW;
end;
$$
language plpgsql;
CREATE TRIGGER name_update
BEFORE UPDATE ON customer
FOR EACH ROW
EXECUTE PROCEDURE trigger_function();