如何将MySQL过程作为触发器返回?

时间:2012-06-05 13:01:18

标签: mysql triggers plpgsql procedure

我是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操作中将其命名为触发器吗?

最诚挚的问候,

1 个答案:

答案 0 :(得分:2)

MySQL仅支持特定数据类型作为函数返回类型。根据MySQL文档,trigger不是数据类型。自定义对象作为数据类型不是AFAIK的功能。支持的数据类型详细here

参考:MySQL CREATE FUNCTION Syntax