最好的方法是批量修改,即每次修改5000條(一次修改不要超過一萬條,否則影響性能). 雖然在11g中,我們也可以選擇使用merge命令,但你的這種情況最好先修改一部分然后看看影響,畢竟在生產(chǎn)環(huán)境作這樣的操作風(fēng)險很大。如果是誤操作,最好還是請DBA來恢復(fù),雖然這樣做會被挨罵,但總比錯上加錯,最后連挨罵的機會都沒有要好得多。如果對這些修改真的有信心,而只是從性能考慮,那可以用下面的方法(pk_col 是表的主鍵
目前創(chuàng)新互聯(lián)建站已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、治多網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
1、構(gòu)建臨時表進行主鍵關(guān)聯(lián)更新
需求:T1表有千萬級別的數(shù)據(jù)量,需要更新這個表的字段a,b滿足2個條件的記錄。
做法:一般業(yè)務(wù)會將條件通過excel表格提供給開發(fā),那么開發(fā)首先需要將這個excel表格的內(nèi)容插入到臨時表T2中,考慮到a,b都不是主鍵,那么需要將a,b轉(zhuǎn)化成主鍵后再插入到T2表中,T2表中還可以保存更新前的數(shù)據(jù),方便做數(shù)據(jù)回滾,T2表中有數(shù)據(jù)后,就可以執(zhí)行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調(diào)的是id必須是主鍵
1、構(gòu)建臨時表進行主鍵關(guān)聯(lián)更新
需求:T1表有千萬級別的數(shù)據(jù)量,需要更新這個表的字段a,b滿足2個條件的記錄。
做法:一般業(yè)務(wù)會將條件通過excel表格提供給開發(fā),那么開發(fā)首先需要將這個excel表格的內(nèi)容插入到臨時表T2中,考慮到a,b都不是主鍵,那么需要將a,b轉(zhuǎn)化成主鍵后再插入到T2表中,T2表中還可以保存更新前的數(shù)據(jù),方便做數(shù)據(jù)回滾,T2表中有數(shù)據(jù)后,就可以執(zhí)行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調(diào)的是id必須是主鍵
1、首先建表語法:Create table 表名,字段 1 數(shù)據(jù)類型 [default 默認值],字段 2 數(shù)據(jù)類型 [default 默認值],...字段 n 數(shù)據(jù)類型 [default 默認值]。
2、表刪除語法:DROP TABLE 表名。
3、表的修改,在sql中使用alter,可以修改表,添加語法:ALTER TABLE 表名稱 ADD(列名 1 類型 [DEFAULT 默認值]。
4、UPDATE(修改)全部修改:UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,....局部修改:UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,....WHERE 修改條件。
5、?最后DELETE(刪除)語法 : DELETE FROM 表名 WHERE 刪除條件。
1、如果列名不適合,那么可以使用alter table語句的rename column子句改變列名。
2、用plsql developer工具修改方便。
Oracle數(shù)據(jù)庫一個最重要的部分就是數(shù)據(jù)字典,是只讀類型的表的集合,提供數(shù)據(jù)庫的信息。
一個數(shù)據(jù)字典包括: 數(shù)據(jù)庫對象所有的框架對象的定義〔表、視圖、索引、群集、同義詞、序列、過程、函數(shù)、包、觸發(fā)器等)。
數(shù)據(jù)字典的結(jié)構(gòu)是表和視圖,就像其他數(shù)據(jù)庫數(shù)據(jù)一樣,一個給定數(shù)據(jù)庫的所有數(shù)據(jù)字典表的和視圖都存儲在數(shù)據(jù)庫的SYSTEM表空間中。數(shù)據(jù)字典不但是每個Oracle數(shù)據(jù)庫的重要組戍部分之一,同時對于所有的用戶,從應(yīng)用設(shè)計人員到數(shù)據(jù)庫管理員,都是非常重要的工具??梢允褂肧QL語句訪問數(shù)據(jù)字典,由于數(shù)據(jù)字典是只讀的,所以只能使用SELECT語句訪問數(shù)據(jù)字典的表和視圖。