MySQL的INSERT SELECT问题
问题描述:
我有一个主键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'
。
答
什么是ID变量的类型?
如果是TINYINT将其更改为INT
好主意 - 关键= 127错误似乎表明这一点。 – ceejayoz 2009-12-27 20:13:48
哦,你是一个天才的家伙!这是问题! – Dan 2009-12-27 20:16:22