刪除重複的行下面的查詢會拋出錯誤的「不能重新打開表<臨時表>」上試圖從MySQL
不能重新打開表
DELETE FROM _temptable
WHERE RowNo >
(
SELECT * FROM
(
SELECT MIN(RowNo)
FROM _temptable
WHERE Status= 'Deleted'
) X
);
刪除重複的行下面的查詢會拋出錯誤的「不能重新打開表<臨時表>」上試圖從MySQL
不能重新打開表
DELETE FROM _temptable
WHERE RowNo >
(
SELECT * FROM
(
SELECT MIN(RowNo)
FROM _temptable
WHERE Status= 'Deleted'
) X
);
在同一查詢中,您不能多次引用臨時表。
從這裏提取:http://dev.mysql.com/doc/refman/5.0/en/temporary-table-problems.html
如果你不使用臨時表,你已經得到了錯誤,而不是1093。 上Mysql 5.0 Subquery Errors人們暗示,你必須把它分解成兩個語句,如:
SET @minRowNo = (SELECT MIN(RowNo) FROM _temptable WHERE Status = 'Deleted');
DELETE FROM _temptable WHERE RowNo > @minRowNo;
雖然我不知道它是什麼,你正在試圖刪除比第一行更高的所有行做刪除,留下刪除的行完好無損...