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 –