首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询Mysql中的大容量更新

问查询Mysql中的大容量更新
EN

Stack Overflow用户
提问于 2017-12-04 08:09:50
回答 1查看 512关注 0票数 0

请考虑mysql中的下表(T)。

代码语言:javascript
复制
id c1  c2
1  10  100
2  20  200
3  30  300

假设我想用c1更新行的“id=2”,我可以执行以下操作。

代码语言:javascript
复制
UPDATE T set col1=20 where id=1;

假设我想要批量更新。

代码语言:javascript
复制
INSERT INTO T(id,c1) VALUES (1,20),(2,40) ON DUPLICATE KEY UPDATE c1=VALUES(c1);

但是,如果模式中没有设置"c2“的默认值,这将给出一个错误。

还有别的方法来完成这个任务吗?

EN

回答 1

Stack Overflow用户

发布于 2017-12-04 10:05:29

当您第一次使用INSERT值时会发生错误,这意味着没有重复的键要更新。您的c2列不可空,且没有默认值。也可以解决这个问题

  • 使c2为可空或
  • 为c2或
  • 在insert语句中为c2提供一个值

如果不想插入表,请将值插入临时表,然后使用update语句并将两个表连接起来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47629008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档