คีย์ต่างประเทศสามารถเป็นโมฆะ Postgres ได้หรือไม่
คีย์ต่างประเทศสามารถเป็นโมฆะ Postgres ได้หรือไม่

วีดีโอ: คีย์ต่างประเทศสามารถเป็นโมฆะ Postgres ได้หรือไม่

วีดีโอ: คีย์ต่างประเทศสามารถเป็นโมฆะ Postgres ได้หรือไม่
วีดีโอ: SQL Nullable Foreign Key Columns 2024, พฤศจิกายน
Anonim

INSERT INTO มูลค่าผลิตภัณฑ์ (11, 'for Joe', 1); INSERT INTO มูลค่าผลิตภัณฑ์ (22, 'สำหรับทุกคน', โมฆะ ); เป็นโมฆะที่ถูกต้องตามกฎหมายอย่างสมบูรณ์ กุญแจต่างประเทศ คอลัมน์.

คำถามก็คือ คีย์นอกจะเป็นโมฆะได้หรือไม่?

NS กุญแจต่างประเทศ ทำให้ตารางขึ้นอยู่กับตารางอื่นที่เรียกว่าตารางหลัก NS กุญแจต่างประเทศ ประกอบด้วย โมฆะ ค่าไม่สามารถตรงกับค่าของ parent กุญแจ ตั้งแต่เป็นพ่อแม่ กุญแจ ตามคำนิยาม สามารถ ไม่มี โมฆะ ค่า อย่างไรก็ตาม a null คีย์ต่างประเทศ ค่าจะถูกต้องเสมอโดยไม่คำนึงถึงมูลค่าของสิ่งที่ไม่ใช่ โมฆะ ชิ้นส่วน

นอกจากนี้ ฉันจะเพิ่มคีย์ต่างประเทศใน PostgreSQL ได้อย่างไร เพิ่ม CONSTRAINT constraint_name กุญแจต่างประเทศ (c1) ข้อมูลอ้างอิง parent_table (p1); โน้ตตัวสุดท้ายเมื่อคุณต้องการ เพิ่มคีย์ต่างประเทศ ข้อ จำกัด ด้วย ON DELETE CASCADE ไปยังตารางที่มีอยู่ คุณต้องทำตามขั้นตอนต่อไปนี้: วางที่มีอยู่ กุญแจต่างประเทศ ข้อจำกัด เพิ่ม ใหม่ กุญแจต่างประเทศ ข้อ จำกัด ด้วยการดำเนินการ ON DELETE CASCADE

จากนั้นคีย์ต่างประเทศสามารถเป็นโมฆะ mysql ได้หรือไม่

5 คำตอบ ค่า NULL ใน กุญแจต่างประเทศ เป็นที่ยอมรับอย่างสมบูรณ์ การจัดการกับค่า NULL ใน กุญแจต่างประเทศ ยุ่งยาก แต่ไม่ได้หมายความว่าคุณเปลี่ยนคอลัมน์ดังกล่าวเป็น NOT โมฆะ และแทรกระเบียนจำลอง ("N/A", "Unknown", "No Value" เป็นต้น) ในตารางอ้างอิงของคุณ

จำเป็นต้องใช้กุญแจต่างประเทศหรือไม่?

เนื่องจากวัตถุประสงค์ของ ต่างชาติ กุญแจสำคัญคือการระบุแถวเฉพาะของตารางอ้างอิง โดยทั่วไปคือ ที่จำเป็น ว่า ต่างชาติ คีย์เท่ากับผู้สมัคร คีย์ใน บางแถวของตารางหลัก มิฉะนั้นจะไม่มีค่า (ค่า NULL) กฎนี้เรียกว่าข้อจำกัดความสมบูรณ์ของการอ้างอิงระหว่างสองตาราง

แนะนำ: