Mahesh ไม่ถูกต้องนักเมื่อเขาแนะนำว่าคุณไม่สามารถแก้ไขข้อมูลในมุมมองได้ ด้วยมุมมองของแพทริค
CREATE View vw_user_profile AS
Select A.user_id, B.profile_description
FROM tbl_user A left join tbl_profile B on A.user_id = b.user_id
ฉันสามารถอัปเดตข้อมูล ... เป็นตัวอย่างฉันสามารถทำอย่างใดอย่างหนึ่งต่อไปนี้ ...
Update vw_user_profile Set profile_description='Manager' where user_id=4
หรือ
Update tbl_profile Set profile_description='Manager' where user_id=4
คุณไม่สามารถแทรกข้อมูลในมุมมองนี้ได้เนื่องจากมีบางฟิลด์ในตารางทั้งหมดอยู่ไม่ได้และฉันสมมติว่า PROFILE_ID เป็นคีย์หลักและไม่สามารถเป็น NULL ได้ อย่างไรก็ตามบางครั้งคุณสามารถแทรกเข้าไปในมุมมอง ...
ฉันสร้างมุมมองบนตารางที่มีอยู่โดยใช้ ...
Create View Junk as SELECT * from [TableName]
แล้ว
Insert into junk (Code,name) values
('glyn','Glyn Roberts'),
('Mary','Maryann Roberts')
และ
DELETE from Junk Where ID>4
ทั้ง INSERT และ DELETE ทำงานในกรณีนี้
เห็นได้ชัดว่าคุณไม่สามารถอัปเดตช่องใด ๆ ที่รวมหรือคำนวณได้ แต่ควรอัปเดตมุมมองใด ๆ ที่เป็นเพียงมุมมองตรง
หากมุมมองมีมากกว่าหนึ่งตารางคุณจะไม่สามารถแทรกหรือลบได้ แต่ถ้ามุมมองนั้นเป็นส่วนย่อยของตารางเดียวเท่านั้นโดยปกติคุณจะทำได้