เปลี่ยนพฤติกรรม referential integrity ของ key
จนถึงตอนนี้ คุณได้กำหนด foreign key constraint ไปแล้ว 3 รายการ:
professors.university_idไปยังuniversities.idaffiliations.organization_idไปยังorganizations.idaffiliations.professor_idไปยังprofessors.id
ปัจจุบัน foreign key เหล่านี้มีพฤติกรรมเป็น ON DELETE NO ACTION ในแบบฝึกหัดนี้ เราจะเปลี่ยนพฤติกรรมของคอลัมน์ที่อ้างอิง organizations จาก affiliations หากองค์กรถูกลบ ความสัมพันธ์ (affiliation) ทั้งหมดที่เชื่อมกับองค์กรนั้น (ไม่ว่าจะเป็นของอาจารย์คนใด) ควรถูกลบตามไปด้วย
การแก้ไข key constraint ไม่สามารถทำได้ด้วย ALTER COLUMN แต่ต้องใช้วิธี DROP key constraint นั้นทิ้ง แล้วจึง ADD อันใหม่ ที่มีพฤติกรรม ON DELETE แตกต่างออกไป
อย่างไรก็ตาม การลบ constraint จำเป็นต้องทราบชื่อของมันก่อน ข้อมูลนี้เก็บอยู่ใน information_schema
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
SQL เบื้องต้น: ฐานข้อมูลเชิงสัมพันธ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Identify the correct constraint name
SELECT constraint_name, table_name, constraint_type
FROM information_schema.___
WHERE constraint_type = 'FOREIGN KEY';