请考虑mysql中的下表(T)。
id c1 c2
1 10 100
2 20 200
3 30 300假设我想用c1更新行的“id=2”,我可以执行以下操作。
UPDATE T set col1=20 where id=1;假设我想要批量更新。
INSERT INTO T(id,c1) VALUES (1,20),(2,40) ON DUPLICATE KEY UPDATE c1=VALUES(c1);但是,如果模式中没有设置"c2“的默认值,这将给出一个错误。
还有别的方法来完成这个任务吗?
发布于 2017-12-04 10:05:29
当您第一次使用INSERT值时会发生错误,这意味着没有重复的键要更新。您的c2列不可空,且没有默认值。也可以解决这个问题
如果不想插入表,请将值插入临时表,然后使用update语句并将两个表连接起来。
https://stackoverflow.com/questions/47629008
复制相似问题