SQL触发器解决

时间:2015-05-17 17:12:24

标签: mysql sql

CREATE TRIGGER Print
Before UPDATE ON employ
  FOR EACH ROW
WHEN (NEW.Employe_ID>0)
DECLARE
    salary int;
BEGIN
    salary:= :NEW.salary-:OLD.salary;
    dbms_output.put('Old salary:'||:OLD.salary);
    dbms_output.put('New salary:'||:NEW.salary);
    dbms_output.put_line('Difference'||salary);
END; 
/

显示

  

错误1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在' WHEN(NEW.Employe_ID> 0)附近使用正确的语法   宣布       salary int'在第4行

我有一个表名为employees,有4列Employe_ID,E_name, 部门编号, 薪水

这个sql有什么问题,如何解决?

1 个答案:

答案 0 :(得分:0)

我不明白为什么你添加条件global $wp_scripts; $wp_scripts->registered['script-name']->src = 'my/path/to/file.js'; ,但万一你真的需要它

on employee_id > 0

插入并更新您的数据,然后阅读@delta

delimiter //

CREATE OR REPLACE TRIGGER print BEFORE UPDATE ON employee
FOR EACH ROW 
IF ( NEW.employe_id > 0 ) THEN
  SELECT NEW.salary - OLD.salary INTO @delta;
END IF;
//

delimiter ;

我不认为可以使用dbms_output.put_line()将@delta自动输出到屏幕上,就像在Oracle上一样。