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();