วันเสาร์ที่ 12 เมษายน พ.ศ. 2557

Mysql Cascade สำหรับโปรแกรม Mbase2012

ความหมายของ CASCADE นั้นคือ เป็นกฎของ Constraints ในการทำตอน DELETE หรือ UPDATE คือเมื่อมีการ Modify ใด ๆ ในตาราง หลัก ตารางอ้างอิงจะเปลี่ยนตาม FK ที่อ้างอิงกับตารางหลักอยู่ คือเปลี่ยนค่า PK ของตารางหลัก ฟิวส์ที่เป็น FK กับตารางหลักอยู่  จะเปลี่ยนไปตามที่ตารางหลักเปลี่ยนไปคือ

- แก้ไขที่ตารางหลัก ตารางอ้างอิงจะเปลี่ยนไปตามที่ตารางหลักเปลี่ยนแปลง ไป
- ลบที่ตารางหลัก ตารางอ้างอิงจะถูกลบไปด้วย ตามรหัสที่อ้างอิงอยู่

Cascade Table ที่เชื่อม13หลักไว้ด้วยกัน เช่น
-uc_inscl
-hosp_sss
-gv_inscl

1.ก่อนอิ่นเราต้องหาcid  ระหว่าง ตาราง population กับ uc_inscl  โดยใช้คำสั่ง
 Select * from uc_inscl  where cid not in (select cid from population)
เพื่อคัดข้อมูลที่มีในตาราง uc_inscl แต่ไม่มีในตาราง population แล้วทำการ Delete ข้อมูลทีเป็นกำพร้า

2.ใช้คำสั่ง เพื่อทำ Cascade
Alter table uc_inscl add constraint pop_uc foreign key (cid) references population (cid)
on update cascade on delete cascade

เท่านี้ครับ เมื่อทำการ Update หรือ Delete ตารางหลัก ตารางลูกจะถูกเปลี่ยนไปด้วย

ขอขอบคุณคุณหมอธวัติ  บุญไทย รพ.ม่วงสามสิบ







ไม่มีความคิดเห็น:

แสดงความคิดเห็น