Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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 phpmyadmin |如何创建事件执行2个操作_Mysql_Phpmyadmin - Fatal编程技术网

Mysql phpmyadmin |如何创建事件执行2个操作

Mysql phpmyadmin |如何创建事件执行2个操作,mysql,phpmyadmin,Mysql,Phpmyadmin,我想创建一个可以执行两个操作的事件,但我不知道如何创建。 以下是查询: CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 20:00:00' DO SET @p=1 UPDATE users SET rate = (@p:=@p+1) ORDER BY power DESC 我还尝试在操作之间写入和,但它仍然写入错误 错误是: \#1064 - You have an error in your SQL syntax;

我想创建一个可以执行两个操作的事件,但我不知道如何创建。 以下是查询:

CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 20:00:00' DO SET @p=1
UPDATE users SET rate = (@p:=@p+1) ORDER BY power DESC
我还尝试在操作之间写入和,但它仍然写入错误

错误是:

\#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE users SET rate = (@p:=@p+1) ORDER BY power DESC' at line 2

您缺少分号
在您的语句之后

试试这个:

CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 20:00:00' 
      DO SET @p=1;
UPDATE users SET rate = (@p:=@p+1) ORDER BY power DESC;

您缺少分号
在您的语句之后

试试这个:

CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 20:00:00' 
      DO SET @p=1;
UPDATE users SET rate = (@p:=@p+1) ORDER BY power DESC;

可以将事件主体包装在复合语句块中:

CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 20:00:00' DO BEGIN
  SET @p=1;
  UPDATE users SET rate = (@p:=@p+1) ORDER BY power DESC;
END
请注意,每条语句都必须以分号结尾,因此您必须将客户端配置为使用不同的语句分隔符,以便它不会认为遇到的第一个分号是
CREATE EVENT
命令的结尾(如何执行此操作取决于您的客户端,但在中,您可以使用
分隔符
,在phpMyAdmin中,您可以在SQL输入框下方设置分隔符)

或者,在这种情况下,您可以使用multiple table
UPDATE
语法执行变量初始化,以便只需要一条简单语句:

CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 20:00:00' DO
  UPDATE   users, (SELECT @p:=0) init
  SET      users.rate = (@p:=@p+1)
  ORDER BY users.power DESC

可以将事件主体包装在复合语句块中:

CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 20:00:00' DO BEGIN
  SET @p=1;
  UPDATE users SET rate = (@p:=@p+1) ORDER BY power DESC;
END
请注意,每条语句都必须以分号结尾,因此您必须将客户端配置为使用不同的语句分隔符,以便它不会认为遇到的第一个分号是
CREATE EVENT
命令的结尾(如何执行此操作取决于您的客户端,但在中,您可以使用
分隔符
,在phpMyAdmin中,您可以在SQL输入框下方设置分隔符)

或者,在这种情况下,您可以使用multiple table
UPDATE
语法执行变量初始化,以便只需要一条简单语句:

CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 20:00:00' DO
  UPDATE   users, (SELECT @p:=0) init
  SET      users.rate = (@p:=@p+1)
  ORDER BY users.power DESC

但是现在phpmyadmin只看到了第一个动作。@1512;请注意:(但是现在phpmyadmin只看到第一个动作。@1512;在?请:(@1512;ושמחי):对于第一个查询,您是否按照我的答案主体中的说明设置了语句分隔符?对于第二个查询,您能否解释一下“它不起作用”的含义我不知道如何使用delimeter@רושמחי:对于第一个查询,您是否按照我的答案主体中的说明设置了语句分隔符?对于第二个查询,您能解释一下“它不工作”的意思吗?我不知道如何使用delimeter