将 MySQL 个触发器转换为 PostgreSql 触发器
Convertion of MySQL Triggers to PostgreSql Trigger
我正在使用 pgsql,我需要将我的 mysql 触发器转换为 pgsql trigger.Pgsql 查询已成功执行,但我无法查看 output.Please 帮助我。
触发器的代码看起来不错。我看不出有什么问题。当您设计触发器时,RAISE NOTICE
语句是您最好的朋友。经常出现的错误是人为错误 - 您可以将触发器设置为错误 table,您可以尝试插入错误 table - 通知显示一切正常。
postgres=> \sf func_trg
CREATE OR REPLACE FUNCTION public.func_trg()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
RAISE NOTICE 'func_trg: %', new;
RETURN new;
END;
$function$
postgres=> CREATE TRIGGER xxx AFTER INSERT ON foo_table
FOR EACH ROW EXECUTE PROCEDURE func_trg();
CREATE TRIGGER
postgres=> set client_min_messages to notice;
SET
postgres=> INSERT INTO foo_table VALUES(10,20);
NOTICE: func_trg: (10,20)
INSERT 0 1
我正在使用 pgsql,我需要将我的 mysql 触发器转换为 pgsql trigger.Pgsql 查询已成功执行,但我无法查看 output.Please 帮助我。
触发器的代码看起来不错。我看不出有什么问题。当您设计触发器时,RAISE NOTICE
语句是您最好的朋友。经常出现的错误是人为错误 - 您可以将触发器设置为错误 table,您可以尝试插入错误 table - 通知显示一切正常。
postgres=> \sf func_trg
CREATE OR REPLACE FUNCTION public.func_trg()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
RAISE NOTICE 'func_trg: %', new;
RETURN new;
END;
$function$
postgres=> CREATE TRIGGER xxx AFTER INSERT ON foo_table
FOR EACH ROW EXECUTE PROCEDURE func_trg();
CREATE TRIGGER
postgres=> set client_min_messages to notice;
SET
postgres=> INSERT INTO foo_table VALUES(10,20);
NOTICE: func_trg: (10,20)
INSERT 0 1