MYSQL Error Code: 1093 You can't specify target table 'x' for update in FROM clause
當(dāng)子查詢作為條件,執(zhí)行delete跟update操作時(shí),會(huì)出現(xiàn):
Error Code: 1093 You can't specify target table 'x' for update in FROM clause
作一個(gè)簡單的示例:
執(zhí)行更新操作
這時(shí),如愿見到我們標(biāo)題上的錯(cuò)誤,解決方法如下(橙色字體系關(guān)鍵):
作一個(gè)簡單的示例:
CREATE TABLE tbl_a(
id INT,
NAME VARCHAR(50)
);
INSERT INTO tbl_a VALUES(1, 'leisure');
INSERT INTO tbl_a VALUES(2, 'leisure2');
SELECT * FROM tbl_a;
id INT,
NAME VARCHAR(50)
);
INSERT INTO tbl_a VALUES(1, 'leisure');
INSERT INTO tbl_a VALUES(2, 'leisure2');
SELECT * FROM tbl_a;
執(zhí)行更新操作
UPDATE tbl_a
SET id = (
SELECT id FROM tbl_a
WHERE NAME = 'leisure2'
) WHERE NAME = 'leisure';
SET id = (
SELECT id FROM tbl_a
WHERE NAME = 'leisure2'
) WHERE NAME = 'leisure';
這時(shí),如愿見到我們標(biāo)題上的錯(cuò)誤,解決方法如下(橙色字體系關(guān)鍵):
UPDATE tbl_a
SET id = (
SELECT id FROM (
SELECT * FROM tbl_a WHERE NAME = 'leisure2'
) xx
)WHERE NAME = 'leisure';
SET id = (
SELECT id FROM (
SELECT * FROM tbl_a WHERE NAME = 'leisure2'
) xx
)WHERE NAME = 'leisure';
posted on 2011-11-22 09:58 leisure 閱讀(3553) 評(píng)論(1) 編輯 收藏 所屬分類: database