Oracle 檢視可以DML操作的條件
條件一:在連線檢視中不能有Order by、Group by、connetc by等語句排序語句。
條件二:基礎表中所有的NOT NULL列都必須在這個檢視中。
條件三:需要更新的列不是虛擬列。
條件四:不能夠具有分組函式。
除了以上幾個限制條件之外,若需要在檢視上進行DML操作的話,則在建立檢視的Select語句中,還不能夠有集合運算子、子查詢等等。以上這些是一些必須要滿足的基本條件,缺一不可。否則的話,針對檢視的DML操作,就會以失敗告終。
但是,並不是說符合了上面這個幾個條件後,檢視就可以暢所無阻的進行資料更新了,其仍然必須符合一定的規則。這其中,最重要的就是鍵值儲存表規則。
如果連線檢視中的一個基礎表的鍵在他的檢視中仍然存在,並且在連線檢視中仍然是主鍵,則這個基礎表就為鍵值儲存表。在連線檢視上,對檢視進行插入、刪除、更新等操作時,一次只能夠對檢視中的一個鍵值儲存表進行更新。
with check option對於違反檢視選擇範圍的資料行被插入,將受WITH CHECK OPTION檢查
檢視上的DML 操作:
DML操作應遵循的原則:
1.簡單檢視可以執行DML操作;
2.在檢視包含GROUP 函式,GROUP BY子句,DISTINCT關鍵字時不能刪除資料行;
3.在檢視不出現下列情況時可透過檢視修改基表資料或插入資料:
a.檢視中包含GROUP 函式,GROUP BY子句,DISTINCT關鍵字;
b.使用表示式定義的列;
c.ROWNUM偽列。
d.基表中未在檢視中選擇的其他列定義為非空且無預設值。
WITH CHECK OPTION 子句
透過檢視執行的INSERTS和UPDATES操作不能建立該檢視檢索不到的資料行, 因為它會對插入或修改的資料行執行完整性約束和資料有效性檢查。 (也就是說在執行INSERTS、UPDATES時,WHERE條件中除需要INSERT、UPDATE本身的限制條件之外,還需要加上檢視建立時的WHERE條件。)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29551564/viewspace-2153484/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle連線檢視DML操作的限制Oracle
- 【ORACLE】物化檢視快速重新整理限制條件Oracle
- oracle 監控 DML DDL 鎖 的4個檢視Oracle
- 微信小程式-檢視條件渲染微信小程式
- oracle檢視可以update嗎Oracle
- oracle檢視基本操作Oracle
- SQL Server檢視管理中的四個限制條件SQLServer
- Oracle並行操作——並行DML操作Oracle並行
- 【開發篇sql】 條件和表示式(十) 特定的dmlSQL
- SQL Server檢視管理中需要遵守的四個限制條件SQLServer
- 總結在SQL Server檢視管理中限制條件SQLServer
- 條件過濾檢索
- 利用檢視 V$FIXED_VIEW_DEFINITION 可以檢視Oracle很多底層的東西ViewOracle
- 關於ORACLE I/O操作的幾個檢視Oracle
- oracle中的條件語句Oracle
- 在不把視窗設定成當前視窗的條件下,對視窗進行操作。
- 最佳化數倉業務檢視:過濾條件傳遞
- oracle點陣圖索引對DML操作的影響Oracle索引
- Oracle DBLINK 抽數以及DDL、DML操作Oracle
- oracle 安裝時先決條件檢查失敗的解決方案Oracle
- 安裝Oracle不滿足系統檢查條件的解決方法Oracle
- Oracle 是分割槽表,但條件不帶分割槽條件的SQLOracleSQL
- Oracle DBWR觸發條件Oracle
- 條件和布林操作符
- 透過閃回事務檢視資料dml的情況
- 通過閃回事務檢視資料dml的情況
- oracle全文索引之commit與DML操作Oracle索引MIT
- 在哪裡可以檢視Response
- 安裝oracle10g 檢查條件一直卡在88%Oracle
- oracle date資料的條件查詢Oracle
- oracle 10g的條件編譯Oracle 10g編譯
- oracle checkpoint 觸發的9個條件Oracle
- MongoDB操作之遍歷集和條件查詢操作MongoDB
- Oracle OCP(02):條件和排序Oracle排序
- 有條件分析oracle日誌Oracle
- 車間操作檢視
- Oracle普通檢視和物化檢視的區別Oracle
- DML操作引起的blocking(一)BloC