我有一个存储过程,由于某种原因工作,除了它正在更新表中的所有行而不限制唯一标识符 - 任何人都可以建议为什么?
CREATE DEFINER=`root`@`localhost` PROCEDURE `update_location`(
IN UID CHAR(17),
IN lat FLOAT(10,6),
IN lng FLOAT(10,6),
IN country VARCHAR(3)
)
BEGIN
UPDATE location
SET lat = lat, lng = lng, country = country
WHERE UID = UID;
END
答案 0 :(得分:0)
为参数使用不同的名称:
CREATE DEFINER=`root`@`localhost` PROCEDURE `update_location`(
IN p_UID CHAR(17),
IN p_lat FLOAT(10,6),
IN p_lng FLOAT(10,6),
IN p_country VARCHAR(3)
)
BEGIN
UPDATE location
SET lat = p_lat,
lng = p_lng,
country = p_country
WHERE UID = p_UID;
END
原始WHERE UID = UID
始终为真,例如1=1
。