34、VIEW可以insert,delete,update.

yyycxhtx發表於2007-12-12

試圖是可以insert ,delete,update的,但是要滿足一定的條件。所有的這些條件最終都反映在基表上,必須遵從基表的約束,並且也會觸發定義在基表上的trigger

[@more@]

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就不是主碼了,所以為非碼保留表.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/248644/viewspace-992235/,如需轉載,請註明出處,否則將追究法律責任。

相關文章