[英]Simple IF Statement in MySQL isn't working
我有一個表,其中包含列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服務器版本相對應的手冊以獲取正確的語法,以在第1行0秒處在'IF(affected_rows> 0)THEN COMMIT'附近使用
當前正在運行MySQL 5.6.22
首先, if
作為控制流表達式僅在編程塊中允許使用-存儲過程,觸發器和函數。
其次,邏輯沒有道理。 如果沒有受影響的行,則無需回滾事務。
指出文檔 :
用於存儲程序的
IF
語句實現了基本的條件構造。
術語“存儲的程序”是指某些編程塊。 if
將它與可以在查詢中使用的MySQL函數if()
混淆,請不要混淆它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.