如果语句语法错误,请继续获取mySQL。我怎么修理它?
我总是出错。如何在MySQL中运行这样的查询如果语句语法错误,请继续获取mySQL。我怎么修理它?,mysql,sql,Mysql,Sql,我总是出错。如何在MySQL中运行这样的查询 updateevents SET eventName='hi'如果ROW_COUNT()=0插入事件(eventName)值(hi) 基本上我想更新,但如果没有数据要更新,我会插入数据。有没有一种方法可以在一行中完成 编辑1 获取此错误 mysql> UPDATE Events -> SET eventName = 'hi'; IF ROW_COUNT() = 0 THEN DELETE FROM Events
updateevents SET eventName='hi'如果ROW_COUNT()=0插入事件(eventName)值(
hi)代码>
基本上我想更新,但如果没有数据要更新,我会插入数据。有没有一种方法可以在一行中完成
编辑1
获取此错误
mysql> UPDATE Events
-> SET eventName = 'hi';
IF ROW_COUNT() = 0
THEN
DELETE FROM Events
WHERE EventID = 1;
END IF;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
mysql>
mysql> IF ROW_COUNT() = 0
-> THEN
-> DELETE FROM Events
-> WHERE EventID = 1;
ERROR 1064 (42000): 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 'IF ROW_COUNT() = 0
THEN
DELETE FROM Events
WHERE EventID = 1' at line 1
mysql> END IF;
ERROR 1064 (42000): 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 'END IF' at line 1
要使用IF
语句,必须在存储过程(或其他过程上下文,如触发器或计划事件)中。然后它必须是两个语句,您需要然后和结束IF
:
UPDATE Events
SET eventName = 'hi';
IF ROW_COUNT() = 0
THEN
DELETE FROM Events
WHERE EventID = 1;
END IF;
我将使用REPLACE,因此对于您的代码:
MySQL REPLACE()替换字符串中出现的所有子字符串
REPLACE INTO Events SET eventName = 'hi'
解释你想做什么。示例数据和所需结果将有所帮助。您不能在同一查询中执行更新
和删除
IF
语句只能在存储过程中使用。@GordonLinoff由于某种原因被更新,我得到一个超时错误。我编辑帖子以显示错误日志。我不能一次运行多个sql吗?不能在mysql>
提示符处键入IF
语句。正如我在回答中所说,它必须在存储过程中。您的第一个语句尝试更新表中的每一行。如果桌子很大,可能需要一段时间。