A. 如何批量修改oracle資料庫中某一個表中的某一列數據
最好的方法是批量修改,即每次修改5000條(一次修改不要超過一萬條,否則影響性能). 雖然在11g中,我們也可以選擇使用merge命令,但你的這種情況最好先修改一部分然後看看影響,畢竟在生產環境作這樣的操作風險很大。如果是誤操作,最好還是請DBA來恢復,雖然這樣做會被挨罵,但總比錯上加錯,最後連挨罵的機會都沒有要好得多。如果對這些修改真的有信心,而只是從性能考慮,那可以用下面的方法(pk_col 是表的主鍵
1、構建臨時表進行主鍵關聯更新
需求:T1表有千萬級別的數據量,需要更新這個表的欄位a,b滿足2個條件的記錄。
做法:一般業務會將條件通過excel表格提供給開發,那麼開發首先需要將這個excel表格的內容插入到臨時表T2中,考慮到a,b都不是主鍵,那麼需要將a,b轉化成主鍵後再插入到T2表中,T2表中還可以保存更新前的數據,方便做數據回滾,T2表中有數據後,就可以執行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調的是id必須是主鍵
1、構建臨時表進行主鍵關聯更新
需求:T1表有千萬級別的數據量,需要更新這個表的欄位a,b滿足2個條件的記錄。
做法:一般業務會將條件通過excel表格提供給開發,那麼開發首先需要將這個excel表格的內容插入到臨時表T2中,考慮到a,b都不是主鍵,那麼需要將a,b轉化成主鍵後再插入到T2表中,T2表中還可以保存更新前的數據,方便做數據回滾,T2表中有數據後,就可以執行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調的是id必須是主鍵
B. oracle多表查詢進行修改的語句
updatem
setm2='t',m3='u'
whereexists(select1fromqwherem1=q1andm2=q2andm3=q3)
更新m表後,
重新執行查詢,得出n
C. 考試ORACLE多表增刪改查題,求大神幫忙
SELECT * FROM temployees TE , Tsalarys TS WHERE TE,C_employeeno AND TS.C_employeeno AND F_salary BETWEEN 8000 AND 10000
D. oracle如何通過兩個表關聯,修改其中一表中某列的數據
設定dept表deptno列為主鍵。
alter
table
dept
add
constraint
pk_deptno
primary
key
(deptno);
在emp表deptno列上建立外鍵引用dept表deptno,指定外鍵類型為級聯刪除。
alter
table
emp
add
constraint
fk_deptno
foreign
key
(deptno)
references
dept(deptno)
on
delete
cascade;
這樣刪除dept表
只需:delete
from
dept
where
city='shanghai';
就可以自動刪除對應emp表內容。
E. oracle sql 語句修改表中數據怎麼寫
修改:update cmsuser set name=aaaa where id=1;添加:insert into cmsuser values(...);--需自己添加刪除:delete from cmsuser where id=1。
F. Oracle中多表關聯如何修改數據
不管是update還是merge每次都是只能修改一站表,還沒聽說一次修改兩張表的。
如果分別修改那就比較簡單了(先確定B列是否唯一,如果不唯一,那麼可能存在修改擴大的問題,所以可能還要修改語句),update a set a.d=2 where a.b=(select b from E where h=1)(這是a表的,b表的改法更容易)
如果一起修改,那麼可能只能臨時修改,也就是select的時候修改一下,這個一般沒什麼用。