这是我的触发器
CREATE TRIGGER proximo_pago
AFTER INSERT ON pago FOR EACH ROW
BEGIN
DECLARE max_orden integer;
DECLARE num_lote =NEW.lote;
BEGIN
SET max_orden = (SELECT MAX(orden) FROM PAGO WHERE LOTE=num_lote);
SELECT max_orden INTO : NEW.orden from dual;
END
END
和错误
错误
SQL查询:
CREATE TRIGGER proximo_pago
AFTER INSERT ON pago FOR EACH ROW
BEGIN
DECLARE max_orden integer;
MySQL说:文档
#1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取在第4行的''附近使用的正确语法
最佳答案
DECLARE TEMPKODE VARCHAR(10);
DECLARE TEMP VARCHAR(5);
或者如果您想分配,可以使用
DECLARE TEMP INT DEFAULT 6;
分配变量
myvariable := TEMPKODE;
SET myvariable := TEMPKODE;
也许你的意思是:
CREATE TRIGGER proximo_pago
AFTER INSERT ON pago FOR EACH ROW
BEGIN
DECLARE max_orden INT;
DECLARE num_lote INT;
BEGIN
SET num_lote := NEW.lote;
SELECT MAX(ordern) INTO max_ordern FROM PAGO WHERE LOTE = num_lote;
SET NEW.ordern := max_ordern;
END
关于mysql - 如何在mysql触发器中声明变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30533883/