这是我的触发器

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/

10-11 11:05