MySQL不允许更新一张表时又查询这张表,如下SQL会报错
UPDATE oms_order t SET LINK_ORDER_CODE = (SELECT ORDER_CODE FROM oms_order WHERE ID = t.LINK_ORDER_ID limit 1)
> 1093 - You can't specify target table 't' for update in FROM clause
> 时间: 0s
我上面订单表有一个关联订单id和关联订单编码,我想给关联订单编码统一设置值,结果报错
解决办法很简单加一个子查询
改成这样就行
UPDATE oms_order t SET LINK_ORDER_CODE = (SELECT ORDER_CODE FROM (select * from oms_order) t2 WHERE ID = t.LINK_ORDER_ID limit 1);
把另一个 oms_order 改成子查询 (select * from oms_order) t2
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏