首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL UPDATE命令如何工作

SQL UPDATE命令如何工作
EN

Stack Overflow用户
提问于 2015-06-20 13:45:57
回答 3查看 2.5K关注 0票数 3

SQL中的UPDATE命令是如何工作的?

我有一个包含三列a,b,c的表,其中a是主键。

表中的值是(1,2,3),(2,4,5)。

假设我想要更新这个元组,并将列c的值设置为4,其中a的值是1。

是否删除元组(1,2,3),然后插入新的元组?

或者值1,2保持不变,3被删除,4被插入?

EN

回答 3

Stack Overflow用户

发布于 2015-06-21 05:09:34

由于您没有指定对哪些数据库特别感兴趣,因此我将选择MySQL。(但说大多数其他关系数据库都有类似的实现并不牵强。)

简而言之,MySQL UPDATE同时支持单表语法和多表语法。在这两种情况下,元组都不会被删除,然后重新插入。编辑直接发生在SET子句指定的列上。

就在docs的顶部,它说

对于单表语法,UPDATE语句使用新值更新命名表中现有行的列。

然后

对于多表语法,UPDATE更新在table_references中命名的每个满足条件的表中的行。每个匹配行都会更新一次,即使它多次匹配条件也是如此。

没有提到DELETE THEN RE-INSERT操作。在您的示例中,值1和2保持不变,而值3被替换为4。

票数 1
EN

Stack Overflow用户

发布于 2015-06-20 13:48:52

这将编辑您的表项,而不是将新的元组添加到表中

代码语言:javascript
复制
UPDATE tableName
SET c='4'
WHERE a='1'
票数 0
EN

Stack Overflow用户

发布于 2015-06-20 13:52:32

更新table_name集合c='4‘,其中a='1';

这将工作得很好,没有任何问题,它不会删除或添加一个新的元组到您的表。

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

https://stackoverflow.com/questions/30950731

复制
相关文章

相似问题

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