首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle UPDATE 語句基本用法與實務注意事項

     編輯:Oracle 資料庫基礎

基本語法

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

範例

-- 將 Module 表中 Moduleid='5' 的記錄,ModuleName 改為 'add Module'
UPDATE Module
SET ModuleName = 'add Module'
WHERE Moduleid = '5';

關鍵提醒

  • WHERE 子句不可省略:缺少 WHERE 會更新全表所有列,造成災難性後果。生產環境建議先用 SELECT * FROM table WHERE ... 確認影響筆數。
  • 字串常數用單引號:Oracle 單引號包裹字串,雙引號保留給識別符(區分大小寫)。
  • 隱式型別轉換風險:WHERE Moduleid = '5' 會觸發字串轉數字,若欄位為 NUMBER 建議寫 WHERE Moduleid = 5 以利索引使用。
  • 大量更新效能:超過萬筆考慮分批次 COMMIT 或使用 FORALL 批次綁定(PL/SQL)。
  • 外鍵/觸發器連鎖:更新父表主鍵或觸發 AFTER UPDATE 觸發器可能級聯大量操作,評估鎖爭用與執行時間。

進階用法速查

場景語法範例
多表關聯更新UPDATE (SELECT t.col1, s.col2 FROM t JOIN s ON t.id=s.t_id WHERE ...) SET col1 = col2
子查詢賦值UPDATE t SET col = (SELECT MAX(val) FROM s WHERE s.t_id = t.id) WHERE EXISTS (...)
RETURNING 子句UPDATE t SET col = val WHERE id = 1 RETURNING col INTO :v_new_val(PL/SQL 取回新值)
條件式更新UPDATE t SET col = CASE WHEN cond THEN v1 ELSE v2 END
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved