mysql - 如何在 MySQL 的触发器中声明变量?因为我在执行几行代码时遇到错误
问题描述
我想在 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 查询:
CREATE TRIGGER CINEMAHALLNO_GENERATE_TRIGGER BEFORE INSERT ON CINEMA_HALLS FOR EACH ROW BEGIN DECLARE cnt DOUBLE MySQL 说:文档
1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 5 行的 '' 附近使用正确的语法
解决方案
Declare 必须放在 Begin 之后。请检查以下链接
推荐阅读
- asp.net-mvc - Bootstrap 多选显示两个下拉控件
- python - Django密码重置功能视图
- android-studio - Android Studio 4 不正确的矢量可绘制预览
- scala - calculate difference in seconds between two columns with spark sql
- trains - 克隆实验是否适用于 sklearn 函数?
- python - 如何加载和运行位于 Google Colab 文件中的笔记本
- vb.net - VB.NET 如何删除便携式设备中存在的文件夹
- c# - 如何在C#中将char字符串转换为字符
- python - 在标准输出上显示 INFO 级别的 python 日志而不更改源代码
- rest-assured - 获取json数组响应的大小或长度(restAssured Response接口)