2012-06-05 54 views
0

我是MySQL新手程序。我需要效仿一些代碼,我通常做PLPGSQL,像這樣:如何返回一個MySQL程序作爲觸發器?

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操作中調用它觸發器嗎?

最好的問候,

+0

你是什麼意思的「返回觸發器的程序」?觸發器附加到特定的表格,並在某些數據被插入/更新/刪除時執行。您可以使用過程來定義觸發器。 – Jocelyn

回答

2

MySQL只支持特定的數據類型作爲函數返回類型。根據MySQL文檔trigger不是數據類型。自定義對象作爲數據類型不是AFAIK功能。支持的數據類型詳述如下:here

參考文獻:MySQL CREATE FUNCTION Syntax