如何在 MySQL 触发器中使用 'WHEN' 子句?


CREATE OR REPLACE TRIGGER Print_salary_changes
  BEFORE DELETE OR INSERT OR UPDATE ON Emp_tab
  FOR EACH ROW
WHEN (new.Empno > 0)
DECLARE ..

上面的代码适用于oracle数据库,但它在Mysql中不起作用。

MySQL不支持触发器的WHEN。请参阅创建触发器语法

相反,您可以在触发器主体中添加 IF

BEGIN
    IF NEW.Empno > 0
       your logic here

像这样尝试:

  BEGIN
    DECLARE v INT DEFAULT 1;
    CASE v
      WHEN 2 THEN SELECT v;
      WHEN 3 THEN SELECT 0;
      ELSE
        BEGIN
        END;
    END CASE;
  END;

最新更新