MySQL INSERT SELECT 问题
我有一个主键 id AUTOINCRMENT
的表和许多 lang='en'
的列,所以如果我这样做:
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
我不知道发生了什么,因为主键是自动增量
。我只想复制 lang='en'
行,将 lang
更改为 'cz'
。
I have a table with primary key id AUTOINCREMENT
and many columns where lang='en'
and so if I do:
DELETE FROM ".MY_PRF."form WHERE `lang` <> 'en';
I want to copy all the columns where lang='en'
and then changing lang
to 'cz'
like so:
INSERT INTO form (`lang`, `caption`, `type`)
SELECT 'cz', `caption`, `type`
FROM form
WHERE lang = 'en';
This query produces an error:
Duplicate entry '127' for key 1
I don't know what's happening because the primary key is AUTOINCREMENT
. I just want to duplicate the lang='en'
rows changing the lang
to 'cz'
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ID变量的类型是什么?
如果是 TINYINT 则改为 INT
what is the type of ID variable?
If it is TINYINT change it to the INT