我创建一个存储过程来更新基于记录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 –