【发布时间】:2014-07-05 01:34:05
【问题描述】:
我有一个名为“TableA”的表,其中包含“customer_id”和“name”字段。 我添加了一个新字段“ref”。现在我想更新该表,以便将 customer_id=1 的第一项的“ref”字段设置为 1001,customer_id=1 的第二项设置为 1002,等等,customer_id=2 的第一项设置为 1001等。
当然,我得到了预期的 mysql 错误消息“您不能在 FROM 子句中指定目标表 'TableA' 进行更新”。
还尝试使用 (SELECT next_ref FROM (SELECT ... WHERE A_sub.customer_id = A.customer_id) AS A_sub),但是 MySQL 说找不到“A.customer_id”。
这是查询:
更新表 A SET A.ref = ( SELECT COALESCE(MAX(A_sub.ref) +1, 1001) FROM 表 A A_sub WHERE A_sub.`customer_id` = A.`customer_id` ) o.ref 为空;问题是:这可以在一个查询中完成还是必须使用临时表? 感谢您的帮助!
【问题讨论】:
标签: mysql sql sql-update circular-dependency