Mysql SQL语法错误
我正在从事一个大学SQL项目,在编写事件时遇到语法错误。代码如下:Mysql SQL语法错误,mysql,sql,syntax-error,Mysql,Sql,Syntax Error,我正在从事一个大学SQL项目,在编写事件时遇到语法错误。代码如下: SET GLOBAL event_scheduler = 1; DROP TABLE IF EXISTS InAndOut; CREATE TABLE InAndOut( Time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, Notification VARCHAR (50)); DROP EVENT IF EXISTS NoOfCustomerIn; DELIMIT
SET GLOBAL event_scheduler = 1;
DROP TABLE IF EXISTS InAndOut;
CREATE TABLE InAndOut(
Time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
Notification VARCHAR (50));
DROP EVENT IF EXISTS NoOfCustomerIn;
DELIMITER //
CREATE EVENT NoOfCustomerIn
ON SCHEDULE EVERY 10 SECOND
DO
DECLARE vInCustomer Integer Default 0;
SET vInCustomer = ROUND((9 * RAND()), 0);
INSERT InAndOut(NoOfCustomerInAndOut) VALUES (Concat(vInCustomer, 'Customer comes!')); //
END; //
DELIMITER ;
。。。错误是:
错误代码:1064。你的密码有错误
您的SQL语法;检查与您的MySQL对应的手册
用于在“DECLARE vInCustomer”附近使用正确语法的服务器版本
整数默认为0;设置vInCustomer=ROUND((9*RAND()),0)第4行的strong>'
更改变量,使其前面有@符号
SET GLOBAL event_scheduler = 1;
DROP TABLE IF EXISTS InAndOut;
CREATE TABLE InAndOut(
Time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
Notification VARCHAR (50));
DROP EVENT IF EXISTS NoOfCustomerIn;
DELIMITER //
CREATE EVENT NoOfCustomerIn
ON SCHEDULE EVERY 10 SECOND
DO
DECLARE @vInCustomer Integer Default 0;
SET @vInCustomer = ROUND((9 * RAND()), 0);
INSERT InAndOut(NoOfCustomerInAndOut) VALUES (Concat(@vInCustomer, 'Customer comes!')); //
END; //
DELIMITER ;
如错误消息所示,您在一个意外(即无效)位置写入了
DECLARE
:
DROP EVENT IF EXISTS NoOfCustomerIn;
DELIMITER //
CREATE EVENT NoOfCustomerIn
ON SCHEDULE EVERY 10 SECOND
DO
DECLARE vInCustomer Integer Default 0;
^^^^^^^
从:
仅允许在BEGIN中声明。。。结束复合语句,并且必须在其开始处,在任何其他语句之前。有趣的是,你已经有了结尾部分
您还将关闭该声明两次:
DELIMITER //
-- [...]
INSERT InAndOut(NoOfCustomerInAndOut) VALUES (Concat(vInCustomer, 'Customer comes!')); // -- Here
END; // -- And here
错误是什么?我不确定,但您可能需要在行的和处终止/
:插入InAndOut(NoOfCustomerInAndOut)值(Concat(vInCustomer,'Customer come!')//代码>提示:读取错误消息。有一个遥远的可能性与问题有关。错误代码如下:错误代码:1064。您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near“DECLARE vInCustomer Integer Default 0”的正确语法;设置vInCustomer=ROUND((9*RAND()),0);'在4号线