2009-12-27 75 views
0

我有一个主键id AUTOINCREMENT和多列,其中lang='en'所以如果我做一个表:MySQL的INSERT SELECT问题

DELETE FROM ".MY_PRF."form WHERE `lang` <> 'en'; 

我想复制所有列,其中lang='en',然后改变lang'cz'像这样:

INSERT INTO form (`lang`, `caption`, `type`) 
    SELECT 'cz', `caption`, `type` 
    FROM form 
    WHERE lang = 'en'; 

该查询产生一个错误:

Duplicate entry '127' for key 1 

我不知道发生了什么,因为主键是AUTOINCREMENT。我只想复制lang='en'行,将lang更改为'cz'

回答

4

什么是ID变量的类型?

如果是TINYINT将其更改为INT

+0

好主意 - 关键= 127错误似乎表明这一点。 – ceejayoz 2009-12-27 20:13:48

+0

哦,你是一个天才的家伙!这是问题! – Dan 2009-12-27 20:16:22