我想在MySql中执行以下代码,但出现错误

CREATE TRIGGER CINEMAHALLNO_GENERATE_TRIGGER
BEFORE INSERT ON CINEMA_HALLS
FOR EACH ROW
BEGIN
  DECLARE cnt DOUBLE;
  DECLARE next1 DOUBLE;
  SELECT COUNT(HALLNO) INTO cnt from CINEMA_HALLS;
  IF cnt > 0 AND cnt < 20 THEN
    SELECT MAX(HALLNO) INTO NEXT1 FROM CINEMA_HALLS;
    set next1=next1+1;
    SET :new.HALLNO=next;
  ELSEIF cnt = 0 THEN
    SET :new.HALLNO=1;
  end if;
  end;


输出错误:
SQL查询:

创建触发器CINEMAHALLNO_GENERATE_TRIGGER
在CINEMA_HALLS上插入之前
每行
开始
  声明双倍
MySQL说:文档

1064-您的SQL语法有误;检查与您的MariaDB服务器版本相对应的手册以获取在第5行的''附近使用的正确语法

最佳答案

必须在开始之后放置声明。
请检查以下link

关于mysql - 如何在MySQL中的触发器中声明变量?当我为代码执行几行时出现错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52036699/

10-10 06:47