視圖就是一條select查詢語句,是一張虛擬表。
table a , table b 以表a基表(a LEFT JOIN b)
1.1 當update view時 更新view中表b字段並且表b中有這條記錄,可執行,並且b表隨之改變。
當update view時 更新view中表a字段表a中有這條記錄,可執行,並且a表隨之改變。
當update view時 更新view中表a和表b,不可執行。
總結:更新view時 只能更新單一表字段並且表中有這條記錄,對應表隨之改變。
1.2 當update 表a時 更新表a中view對應的字段時,可執行,並且view隨之改變。
當update 表b時 更新表b中view對應的字段時,可執行,並且view隨之改變。
總結:更新相關聯的表時,view中對應的字段隨之改變。
2.1 當delete view時,不可執行。
總結:刪除view中某個字段時,會改變兩個表的字段,所以不可執行。
2.2 當delete 表a時,可執行,view中的記錄不會刪掉,只是與表a相對應的字段為空值。
當delete 表b時,可執行,view中的記錄不會刪掉,只是與表b相對應的字段為空值。
總結:刪除相關聯表時,view中相對應的字段為空值。
3.1當insert view時,插入view中表a相對應的字段,可執行,並且a表隨之插入。
當insert view時,插入view中表b相對應的字段,可執行,並且b表隨之插入。
當insert view時,插入view中表a和表b相對應的字段,不可執行。
總結:插入view時,只能插入單一表相對應的字段,對應表也隨之插入
3.2 當insert 表a時,可執行,如果滿足視圖on條件時,view隨之插入相應的新紀錄,否則,view不會隨之插入相應的新紀錄。
當insert 表b時,可執行,如果滿足視圖on條件時,view隨之插入相應的新紀錄,否則,view不會隨之插入相應的新紀錄。
總結:插入相關聯表時,只要滿足創建view時的on條件,view隨之插入新紀錄。
根據以上實驗結果,表的update,insert,delete都可以執行,只要滿足創建view時的on條件,view也會隨之update,insert,delete。
關聯一個表的view,view的update,insert,delete都可以執行,表也會隨之update,insert,delete。
關聯多表的view,view的update,insert, 只有update,insert其中一個表的字段時可執行,這個表也隨之update,insert;view的delete,不可執行。