我有一个包含id
列和name
列的表格。
START TRANSACTION;
UPDATE Test SET name='test' where id=1;
SELECT ROW_COUNT() INTO @affected_rows;
IF (@affected_rows > 0) THEN
COMMIT;
ELSE
ROLLBACK;
END IF
似乎正在返回错误
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近'IF(affected_rows> 0)那么 COMMIT'在第1行0秒
目前正在运行MySQL 5.6.22
答案 0 :(得分:2)
首先,if
作为控制流表达式仅允许在编程块中使用 - 存储过程,触发器和函数。
其次,逻辑没有意义。如果没有行受到影响,则无需回滚事务。
存储程序的
IF
语句实现了一个基本的条件结构。
术语"存储的程序"意味着一些编程块。不要将此if
与MySQL函数if()
混淆,后者可用于查询。