2012-08-01 58 views
1

我嘗試以下查詢:ERROR 1093(HY000):不能指定更新目標表中FROM子句

mysql> INSERT INTO tm_visitor (VDT,VID, NAME, CONTACT) values(REPLACE(LE 
FT(NOW(), 10), '-', ''),(SELECT LPAD(COALESCE(MAX(VID) + 1, 000001), 6, '0') FRO 
M tm_visitor),'yatin','9876543120'); 

,但我得到了下面的錯誤。

ERROR 1093(HY000):您不能指定目標表 'tm_visitor' 在FROM clause`

到底哪裏出問題了,如何解決它的更新?

+1

請使用一個更具描述性標題。標題是否反映了您的問題? – Mohayemin 2012-08-01 05:15:41

回答

1
INSERT INTO tm_visitor (VDT,VID, NAME, CONTACT) 
SELECT REPLACE(LEFT(NOW(), 10), '-', ''), 
    LPAD(COALESCE(MAX(VID) + 1, 000001), 6, '0'), 
    'yatin','9876543120' 
FROM tm_visitor 
+0

這是由於前導零。您可以嘗試以下方法:'INSERT INTO tm_visitor(VDT,VID,NAME,CONTACT) SELECT REPLACE(LEFT(NOW(),10),' - ',''), LPAD(MAX(TRIM(LEADING'0' FROM VID))+ 1,6,'0'),'yatin','9876543120'FROM tm_visitor;' – sel 2012-08-01 05:36:56

+0

您可以將它轉換爲最大簽名.'INSERT INTO tm_visitor(VDT,VID,NAME,CONTACT ) SELECT REPLACE(LEFT(NOW(),10),' - ',''), LPAD(MAX(CAST(VID AS SIGNED))+ 1,6,'0'),'yatin','9876543120 'FROM tm_visitor;' – sel 2012-08-01 05:39:33

0

the manual

的情況下,會出現此錯誤[...],它試圖在子查詢中修改一個表,然後從同一個表

相關問題