我創建一個存儲過程來更新基於記錄ID的表記錄。這裏是我的代碼(在更新部分的值是硬編碼只是爲了測試):MySQL錯誤代碼1175當試圖更新存儲過程內
CREATE DEFINER=`root`@`localhost` PROCEDURE `destination_update`(
IN destination_id char(3),
IN destination_name varchar(250),
IN is_office tinyint(1),
IN address varchar(250),
IN status_id int(11))
BEGIN
UPDATE `paisanos_new`.`destinations`
SET
`destination_name` = 'b',
`is_office` = 0,
`address` = 'b',
`status_id` = 2
WHERE `destination_id` = 'zzz';
END
當我打電話與程序:
call paisanos_new.destination_update('zzz', 'a', 0, 'a', 2);
我收到以下錯誤:
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
但是,當我執行更新查詢時,它工作正常。
我試過禁用SQL_SAFE_UPDATES,但是當我運行存儲過程時,它更新了我所有的表記錄!就好像,事實上,我沒有使用主鍵的where子句。
任何想法?
感謝您的回答,那就是問題所在。 –
沒有乾草! Upvote如果你喜歡它;) – sdsc81
當然,我已upvoted它,但可惜我沒有名譽,所以它不包括u.u –