Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL语法错误_Mysql_Sql_Syntax Error - Fatal编程技术网

Mysql 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

我正在从事一个大学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;
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)'


更改变量,使其前面有@符号

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号线