0
我尝试更新使用INNER JOIN
像这样的表(dummy.ID
设置主键):MySQL的sql_safe_update恒定误差
UPDATE dummy
INNER JOIN original
ON dummy.FirstName =original.FirstName
AND dummy.LastName = original.LastName
SET dummy.col1 = original.col1
WHERE dummy.ID <> 0;
有SQL_SAFE_UPDATE
激活,而不是被alowed以任何方式来禁用它,因为上述声明我得到着名的错误:You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
。
我试过WHERE KEY IN (,)
,WHERE KEY NOT NULL
,以及其他很多实现WHERE
子句的方法,但是所有的东西都失败了,出现了同样的错误。它工作的唯一方法是使用WHERE dummy.ID = 1
,但是这当然只更新一行。
难道是因为我用了JOIN
?有没有办法在不禁用sql_safe_update
的情况下执行此更新?
那么'ID'列是关键吗? –
是的,在我的帖子中说,它是 – MRM