0

我是 MySQL 程序的新手。我需要模拟一些我通常使用 PLpgSQL 执行的代码,如下所示:

DROP FUNCTION IF EXISTS "aprtr_controlo_tabelas_ins_upd" () CASCADE;
CREATE OR REPLACE FUNCTION "aprtr_controlo_tabelas_ins_upd" ()         
RETURNS trigger AS

$BODY$
        BEGIN
            IF (TG_OP = 'INSERT') THEN
                NEW.data_ult_actual := current_timestamp;
                NEW.id_utiliz_ins := current_user;
            RETURN NEW;
            ELSEIF (TG_OP = 'UPDATE') THEN
                NEW.data_ult_actual := current_timestamp;
                NEW.id_utiliz_upd := current_user;
            RETURN NEW;
            END IF;

            RETURN NULL;
        END;
$BODY$
        LANGUAGE PLpgSQL
        CALLED ON NULL INPUT
        VOLATILE
        EXTERNAL SECURITY DEFINER; 

可以在 MySQL 中编写返回触发器的过程吗?或者更好的是,我可以在 INSERT 或 UPDATE 操作中使用过程代码并将其称为触发器吗?

此致,

4

1 回答 1

2

MySQL 只支持特定的数据类型作为函数返回类型。根据 MySQL 文档trigger不是数据类型。作为数据类型的自定义对象不是AFAIK的功能。此处详细介绍了支持的数据类型。

参考:MySQL CREATE FUNCTION 语法

于 2012-06-05T14:12:38.820 回答