MySQL INSERT SELECT 问题

发布于 2024-08-15 21:52:24 字数 591 浏览 10 评论 0原文

我有一个主键 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

_畞蕅 2024-08-22 21:52:24

ID变量的类型是什么?

如果是 TINYINT 则改为 INT

what is the type of ID variable?

If it is TINYINT change it to the INT

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文