ข้อ จำกัด ที่ไม่เป็นโมฆะคืออะไร?
ข้อจำกัดที่ไม่เป็นโมฆะช่วยให้แน่ใจว่าคอลัมน์ไม่สามารถมีค่า Null ซึ่งกำหนดให้ทุกแถวในตารางมีค่าที่ไม่เป็น Null สำหรับคอลัมน์นั้นๆ
ข้อกำหนดการสอน:
ในการปฏิบัติตามคำแนะนำที่ให้ไว้ในโพสต์นี้ เราถือว่าคุณมีข้อกำหนดดังต่อไปนี้:
- ติดตั้งเซิร์ฟเวอร์ PostgreSQL บนเครื่องของคุณ
- ความรู้พื้นฐานเกี่ยวกับ SQL
- การอนุญาตให้สร้างวัตถุตารางฐานข้อมูล เช่น ข้อจำกัด ฟังก์ชัน ฯลฯ
ตัวอย่างตาราง:
ให้เราเริ่มต้นด้วยการตั้งค่าตารางตัวอย่างที่มีคอลัมน์ที่มีข้อจำกัดที่ไม่เป็นค่าว่าง ใช้คำสั่งสร้างตารางต่อไปนี้ซึ่งตั้งค่าตารางพื้นฐานที่คล้ายกับตาราง wp_users ใน WordPress:
สร้างตาราง wp_users (
ID ซีเรียลคีย์หลัก
user_login VARCHAR(60) ไม่เป็นโมฆะ
user_pass VARCHAR(255) ไม่เป็นโมฆะ
user_nicename VARCHAR(50) ไม่เป็นโมฆะ
user_email VARCHAR(100) ไม่เป็นโมฆะ
user_url VARCHAR(100),
user_registered TIMESTAMP ไม่เป็น NULL DEFAULT current_timestamp
user_activation_key VARCHAR(255),
user_status INT ไม่เป็นโมฆะเริ่มต้น 0
display_name VARCHAR(250) ไม่เป็นโมฆะ
);
จากข้อความค้นหาที่กำหนด คุณจะสังเกตเห็นว่าคอลัมน์ส่วนใหญ่มีข้อจำกัดที่ไม่เป็นโมฆะ
วิธีที่มีประสิทธิภาพที่สุดในการสร้างข้อจำกัดที่ไม่เป็นโมฆะในคอลัมน์ที่กำหนดคือระหว่างการสร้างตาราง สิ่งนี้ทำให้มั่นใจได้ว่าข้อมูลทั้งหมดที่เพิ่มลงในตารางเป็นไปตามกฎของข้อจำกัด
อย่างไรก็ตาม หากคุณเพิ่มข้อจำกัดให้กับตารางที่มีอยู่ กฎจะใช้กับข้อมูลที่เพิ่มหลังข้อจำกัดเท่านั้น และไม่ใช้กับข้อมูลที่มีอยู่ สิ่งนี้สามารถนำไปสู่ความไม่สอดคล้องกัน โดยเฉพาะในตารางขนาดใหญ่
เพิ่มข้อ จำกัด ไม่เป็นโมฆะ
ในบางกรณี คุณอาจต้องการเพิ่มข้อจำกัดที่ไม่เป็นโมฆะให้กับตารางที่มีอยู่ ตัวอย่างเช่น คุณสามารถใช้คำสั่ง ALTER TABLE ตามด้วยส่วนคำสั่ง ALTER COLUMN
ไวยากรณ์เป็นดังนี้:
เปลี่ยนตาราง table_nameแก้ไขคอลัมน์ column_name ตั้งค่าไม่เป็นโมฆะ
แทนที่ table_name ด้วยตารางเป้าหมายของคุณ และเปลี่ยน column_name ด้วยคอลัมน์เป้าหมายที่คุณต้องการใช้ข้อจำกัด
ตรวจสอบข้อจำกัด
คุณสามารถตรวจสอบว่าข้อจำกัดมีอยู่ในตารางที่กำหนดโดยใช้คำสั่ง “\d” ในยูทิลิตี้ PSQL
\d table_nameตัวอย่าง:
sample_db=# \d wp_users;ผลลัพธ์ที่ได้จะเป็นดังนี้:
ลบข้อจำกัดที่ไม่เป็นโมฆะ
คุณอาจต้องการลบข้อจำกัดที่ไม่เป็นโมฆะออกจากคอลัมน์ที่กำหนด สำหรับสิ่งนั้น เราสามารถใช้ส่วนคำสั่ง ALTER TABLE และ ALTER COLUMN ได้ดังนี้:
เปลี่ยนตาราง table_nameแก้ไขคอลัมน์ column_name DROP ไม่เป็นโมฆะ;
ตัวอย่างเช่น หากต้องการลบข้อจำกัดที่ไม่เป็นค่าว่างออกจากคอลัมน์ user_url ของตาราง wp_users เราสามารถเรียกใช้คำสั่งต่อไปนี้:
แก้ไขตาราง wp_users แก้ไขคอลัมน์ user_url วางไม่เป็นโมฆะ;สิ่งนี้ควรยกเลิกข้อ จำกัด จากตาราง
บทสรุป
บทช่วยสอนนี้กล่าวถึงวิธีที่เราสามารถทำงานกับข้อจำกัด NOT NOLL ใน PostgreSQL นอกจากนี้ เรายังสำรวจวิธีลดข้อจำกัดที่ไม่เป็นโมฆะที่มีอยู่ออกจากคอลัมน์ที่กำหนด