SQL中的UPDATE命令如何工作?
我有一个表有三列a,b,c,其中a是主键。
表中的值是(1,2,3),(2,4,5)。
假设我想更新这个元组,并将列c的值设置为4,其中a的值为1.
元组(1,2,3)是否被删除,然后插入新的元组?
或值1,2保持不变3将被删除并插入4?SQL UPDATE命令如何工作
回答
这应该修改表条目不增加新的元组到表
UPDATE tableName
SET c='4'
WHERE a='1'
更新语句只覆盖已更改的数据。数据库服务器可能必须将您的数据记录物理移动到新页面,但这对您而言是透明的。 1 + 2中的数据保持不变。 – PhillipH
SQL中的UPDATE命令如何工作? – HelloNewWorld
是更新的值只改变其他值不受影响。 – nifCody
更新table_name的 集合C = '4' 其中a = '1';
这将工作正常,没有任何问题,它不会删除或添加一个新的元组到您的表。
链接到文档以解释您的答案,并教他们如何解决问题,而不是简单地提供答案会更好。感谢您给出答案! – ToothlessRebel
简短的回答是,UPDATE
首先查找所有匹配的行(您正在调用元组),然后修改它们。它不会删除或添加任何行。
然而,
的
UPDATE
声明将火都
DELETE
和
INSERT
触发,如果任何定义。因此,从某个角度来看,它看起来似乎是一个删除和一个插入。
编辑:我的意思说的是,当一个UPDATE
触发闪光,UPDATE
之前的数据都在DELETED
pseudotable可用,而UPDATE
后的数据出现在INSERTED
pseudotable。从这个意义上说,只有UPDATE
看起来有点像删除加插入。我对上述错误陈述表示歉意。
对我而言,这是一件愚蠢的事情。用我真正的意思编辑。 –
由于您没有指定哪些数据库特别感兴趣,因此我将选择MySQL。 (但是说大多数其他关系数据库具有类似的实现方式并不太遥不可及。)
简而言之,MySQL UPDATE
支持单表语法和多表语法。在这两种情况下,元组都不会被删除,然后重新插入。编辑直接发生在由SET
子句指定的列中。
就在docs的顶部,它说,
对于单表的语法,在用新值命名表中现有行的UPDATE语句更新的列。
然后
对于多表的语法中,在每个表UPDATE更新行中满足的条件table_references命名。即使匹配条件多次,每个匹配行也会更新一次。
没有提及DELETE THEN RE-INSERT
操作。在你的情况,是的,值1和2保持不变,而3被替换为4.
- 1. SQL UPDATE命令不会Command.Parameters.Add/AddWithValue工作
- 2. SQL UPDATE命令复制
- 3. SQL datahandling与vb.net update命令
- 4. 这个oracle SQL命令如何工作?
- 5. update-rc.d命令
- 6. UPDATE如何工作?
- 7. pstack命令如何工作?
- 8. 命令如何工作?
- 9. SQL命令错误UPDATE“Near Syntax \”
- 10. SQL UPDATE命令似乎并不奏效
- 11. Amazon EC2上的PostgreSQL slow sql update命令
- 12. mysqli_query和UPDATE命令不起作用
- 13. SQL UPDATE不工作的MySQL
- 14. SQL UPDATE语句不工作
- 15. 部分UPDATE命令
- 16. 如何结合两个UPDATE mysql命令?
- 17. 如何使用命令update-alternatives --config java
- 18. SQL UPDATE命令 - 如何知道有多少记录已更新?
- 19. 'Update'命令在VisualSVN中不起作用
- 20. 为什么我的Update sql命令不起作用?
- 21. 'git pull'命令的工作原理与'svn update'相似?
- 22. SQL更新命令与Python不工作
- 23. SQL挂起的FTP命令,但工作过命令行
- 24. SQL命令可以工作,但EntityFramework的命令却不行?
- 25. 带NULL的UPDATE命令
- 26. SQL命名法:INSERT/UPDATE/DELETE的“查询”或“命令”?
- 27. 合并命令如何工作?
- 28. bash命令“grep -v”:0“”如何工作
- 29. Linux中的“rm”命令如何工作?
- 30. 后台工作,如何构建命令
你正在使用哪些DBMS? Postgres的?甲骨文?在_how_上的实际实现是在技术上实现的,幕后是_highly_ DBMS依赖(有时甚至依赖于涉及的表的实际语句以及任何可能的索引) –
对于SQL Server更新可以在位,或者删除/插入或混合的两个。 http://stackoverflow.com/a/14082375/73226 –