視圖雖具資料隱藏、邏輯獨立、簡化查詢優勢,但非萬能,受四大硬性限制。
更新視圖實為更新基表,但以下視圖不可直接更新:
GROUP BY 聚合:失去列物理位置,無法定位更新行。DISTINCT:去重後單行對應基表多行,無法確定更新目標。AVG、MAX、SUM 等):為保障一致性禁止更新。實務建議:前台程式直接操作基表,由應用層保障合法性;視圖專供報表/查詢只讀場景。
SELECT INTO 建表,需用函數/預存程序替代。ORDER BY(Oracle 允許),遷移時易踩坑。CREATE VIEW 權限,大型團隊常分離建表與建視圖權限。SELECT 權限,缺一不可。WITH GRANT OPTION 才可轉授。掌握四大限制,才能在報表/表單(宜用視圖)與基表更新(宜直操作+觸發器/規則/前台約束)間做正確架構決策。