国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

在Oracle中向視圖中插入數據的方法

2024-08-29 13:57:05
字體:
來源:轉載
供稿:網友
插入視圖的條件:  
1.如果視圖是基于一個基礎表產生的,那么這就稱為非連接視圖,所有的非連接視圖都是可以更新的,也就是說可以在該視圖上進行,INSERT,UPDATE,DELETE的操作.  
2.如果是連接視圖,那就要遵守基本更新準則了.現在我只對INSERT準則做一下說明:在INSERT語句中不能顯式或隱式的引用到任何非碼保留基礎表中的字段,如果在定義視圖中使用了WITH CHECK OPTION子句,那就不能對視圖執行INSERT操作.  
注:碼保留表,非碼保留表的解釋:  
在DEPT中,DEPT_NO是主碼,EMP中,EMP_NO是主碼  
然后建立連接視圖:  
create view emp_dept as  
select emp.emp_no,emp.emp_name,emp.dept_no,dept.name  
from emp,dept  
where emp.dept_no=dept.dept_no  

這個視圖中,EMP_NO仍然充當主碼,所以EMP為碼保留表,而DEPT中的DEPT_NO就不是主碼了,所以為非碼保留表.  

多張表關聯后需要向視圖插入數據,建議使用替代觸發器 

create trigger [觸發器名]
on [視圖名]
instead of insert
as
begin
--聲明變量;
--從inserted表中查出所有列的數據,分別賦給聲明好的變量;

--用上面的數據向第一張表插入數據
--用上面的數據向第二張表插入數據
end

此外通過user_updatable_columns表能夠查詢到該表或者視圖是否可更新。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晴隆县| 禹城市| 徐闻县| 崇礼县| 和林格尔县| 济南市| 军事| 华宁县| 杭锦旗| 双流县| 体育| 会宁县| 盱眙县| 永丰县| 西丰县| 兰西县| 长乐市| 威信县| 永城市| 图片| 布拖县| 常熟市| 得荣县| 灌南县| 新安县| 宝兴县| 博湖县| 苏尼特右旗| 道孚县| 安阳县| 浪卡子县| 张家口市| 务川| 贡嘎县| 河池市| 崇左市| 元谋县| 莲花县| 垦利县| 金溪县| 临海市|