ลบข้อ จำกัด ไม่เป็นโมฆะใน Postgres

Lb Khx Cakad Mi Pen Mokha Ni Postgres



ในฐานข้อมูลเชิงสัมพันธ์ เช่น PostgreSQL ข้อจำกัดมีความสำคัญในการรักษาความสมบูรณ์ของข้อมูลและบังคับใช้กฎเฉพาะในคอลัมน์ตาราง ข้อจำกัดอย่างหนึ่งคือข้อจำกัด “ไม่เป็นโมฆะ” ในบทช่วยสอนนี้ เราจะสำรวจแนวคิดของข้อจำกัดที่ไม่เป็นโมฆะ และให้คำแนะนำทีละขั้นตอนในการสร้างและนำออกใน PostgreSQL

ข้อ จำกัด ที่ไม่เป็นโมฆะคืออะไร?

ข้อจำกัดที่ไม่เป็นโมฆะช่วยให้แน่ใจว่าคอลัมน์ไม่สามารถมีค่า Null ซึ่งกำหนดให้ทุกแถวในตารางมีค่าที่ไม่เป็น Null สำหรับคอลัมน์นั้นๆ

ข้อกำหนดการสอน:

ในการปฏิบัติตามคำแนะนำที่ให้ไว้ในโพสต์นี้ เราถือว่าคุณมีข้อกำหนดดังต่อไปนี้:







  1. ติดตั้งเซิร์ฟเวอร์ PostgreSQL บนเครื่องของคุณ
  2. ความรู้พื้นฐานเกี่ยวกับ SQL
  3. การอนุญาตให้สร้างวัตถุตารางฐานข้อมูล เช่น ข้อจำกัด ฟังก์ชัน ฯลฯ

ตัวอย่างตาราง:

ให้เราเริ่มต้นด้วยการตั้งค่าตารางตัวอย่างที่มีคอลัมน์ที่มีข้อจำกัดที่ไม่เป็นค่าว่าง ใช้คำสั่งสร้างตารางต่อไปนี้ซึ่งตั้งค่าตารางพื้นฐานที่คล้ายกับตาราง 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 นอกจากนี้ เรายังสำรวจวิธีลดข้อจำกัดที่ไม่เป็นโมฆะที่มีอยู่ออกจากคอลัมน์ที่กำหนด