הסר את האילוץ NOT NULL ב-Postgres

Hsr T H Ylwz Not Null B Postgres



במסדי נתונים יחסיים כגון PostgreSQL, אילוצים הם חיוניים בשמירה על שלמות הנתונים ואכיפת כללים ספציפיים על עמודות טבלה. אילוץ אחד כזה הוא האילוץ 'NOT NULL'. במדריך זה, נחקור את הרעיון של האילוץ NOT NULL ונספק מדריך שלב אחר שלב ליצירה והסרה שלו ב-PostgreSQL.

מהו אילוץ NOT NULL?

האילוץ NOT NULL מבטיח שעמודה לא יכולה להכיל ערכי null המחייבים שכל שורה בטבלה תהיה בעלת ערך לא null עבור העמודה הספציפית הזו.

דרישות הדרכה:

כדי לעקוב אחר ההוראות הניתנות בפוסט זה, אנו מניחים שיש לך את הדרישות הבאות:







  1. שרת PostgreSQL מותקן במחשב שלך
  2. ידע בסיסי ב-SQL
  3. הרשאה ליצור אובייקטים בטבלת מסד הנתונים כגון אילוצים, פונקציות וכו'

טבלה לדוגמה:

נתחיל בהגדרת טבלה לדוגמה עם עמודות המכילות אילוץ לא null. קח את ההצהרה הבאה של create table שמגדירה טבלה בסיסית הדומה לטבלת wp_users בוורדפרס:



צור טבלה wp_users (
מפתח ראשי סדרתי מזהה,
user_login VARCHAR(60) NOT NULL,
user_pass VARCHAR(255) NOT NULL,
user_nicename VARCHAR(50) NOT NULL,
user_email VARCHAR(100) NOT NULL,
user_url VARCHAR(100),
user_registered TIMESTAMP NOT NULL DEFAULT current_timestamp,
user_activation_key VARCHAR(255),
user_status INT NOT NULL ברירת מחדל 0,
display_name VARCHAR(250) NOT NULL
);

מהשאילתה הנתונה, תבחין שרוב העמודות מכילות אילוץ NOT NULL.



השיטה היעילה ביותר ליצירת אילוץ NOT NULL בעמודה נתונה היא במהלך יצירת הטבלה. זה מבטיח שכל הנתונים שמתווספים לטבלה עומדים בכללי האילוץ.





עם זאת, אם אתה מוסיף אילוץ לטבלה קיימת, הכללים חלים רק על הנתונים שמתווספים לאחר האילוץ ולא על נתונים קיימים. זה יכול להוביל לחוסר עקביות, במיוחד בטבלאות גדולות.

הוסף אילוץ NOT NULL

במקרים מסוימים, ייתכן שתרצה להוסיף אילוץ NOT NULL לטבלה קיימת. לדוגמה, אתה יכול להשתמש בפקודה ALTER TABLE ואחריה במשפט ALTER COLUMN.



התחביר הוא כדלקמן:

ALTER TABLE שם_טבלה
ALTER COLUMN column_name SET NOT NULL;

החלף את table_name בטבלת היעד שלך ואת column_name בעמודת היעד שעליה ברצונך להחיל את האילוץ.

אמת את האילוץ

אתה יכול לוודא שהאילוץ קיים בטבלה נתונה באמצעות הפקודה '\d' בכלי השירות PSQL.

\d table_name

דוגמא:

sample_db=# \d wp_users;

הפלט המתקבל הוא כדלקמן:

הסר את האילוץ NOT NULL

ייתכן שתרצה גם להסיר את האילוץ NOT NULL מעמודה נתונה. לשם כך, אנו יכולים להשתמש בסעיפים ALTER TABLE ו-ALTER COLUMN כדלקמן:

ALTER TABLE שם_טבלה
ALTER COLUMN column_name DROP NOT NULL;

לדוגמה, כדי להסיר את האילוץ NOT NULL מהעמודה user_url של הטבלה wp_users, נוכל להריץ את השאילתה הבאה:

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;

זה אמור להוריד את האילוץ מהטבלה.

סיכום

מדריך זה בחן כיצד אנו יכולים לעבוד עם האילוץ NOT NOLL ב- PostgreSQL. בדקנו גם כיצד להוריד אילוץ NOT NULL קיים מעמודה נתונה.