Xóa ràng buộc NOT NULL trong Postgres

Xoa Rang Buoc Not Null Trong Postgres



Trong các cơ sở dữ liệu quan hệ như PostgreSQL, các ràng buộc rất quan trọng trong việc duy trì tính toàn vẹn của dữ liệu và thực thi các quy tắc cụ thể trên các cột của bảng. Một ràng buộc như vậy là ràng buộc “NOT NULL”. Trong hướng dẫn này, chúng ta sẽ khám phá khái niệm về ràng buộc NOT NULL và cung cấp hướng dẫn từng bước về cách tạo và xóa nó trong PostgreSQL.

Ràng buộc NOT NULL là gì?

Ràng buộc NOT NULL đảm bảo rằng một cột không thể chứa các giá trị null, yêu cầu mọi hàng trong bảng phải có giá trị khác null cho cột cụ thể đó.

Yêu cầu hướng dẫn:

Để làm theo các hướng dẫn được cung cấp trong bài đăng này, chúng tôi cho rằng bạn có các yêu cầu sau:







  1. Đã cài đặt máy chủ PostgreSQL trên máy của bạn
  2. Kiến thức SQL cơ bản
  3. Quyền tạo các đối tượng bảng cơ sở dữ liệu như ràng buộc, hàm, v.v.

Bảng ví dụ:

Chúng ta hãy bắt đầu bằng cách thiết lập một bảng mẫu với các cột chứa ràng buộc không null. Lấy câu lệnh tạo bảng sau đây để thiết lập một bảng cơ bản giống với bảng wp_users trong WordPress:



TẠO BẢNG wp_users (
ID NỐI TIẾP KHÓA CHÍNH,
user_login VARCHAR(60) KHÔNG NULL,
user_pass VARCHAR(255) KHÔNG NULL,
user_nicename VARCHAR(50) NOT NULL,
user_email VARCHAR(100) KHÔNG NULL,
user_url VARCHAR(100),
DẤU THỜI GIAN của user_registered NOT NULL DEFAULT current_timestamp,
user_activation_key VARCHAR(255),
user_status INT KHÔNG NULL MẶC ĐỊNH 0,
display_name VARCHAR(250) NOT NULL
);

Từ truy vấn đã cho, bạn sẽ nhận thấy rằng hầu hết các cột chứa ràng buộc NOT NULL.



Phương pháp hiệu quả nhất để tạo ràng buộc NOT NULL trong một cột nhất định là trong quá trình tạo bảng. Điều này đảm bảo rằng tất cả dữ liệu được thêm vào bảng tuân thủ các quy tắc của ràng buộc.





Tuy nhiên, nếu bạn thêm một ràng buộc vào một bảng hiện có, các quy tắc chỉ áp dụng cho dữ liệu được thêm vào sau ràng buộc chứ không áp dụng cho bất kỳ dữ liệu hiện có nào. Điều này có thể dẫn đến sự không nhất quán, đặc biệt là trong các bảng lớn.

Thêm ràng buộc NOT NULL

Trong một số trường hợp, bạn có thể muốn thêm ràng buộc NOT NULL vào một bảng hiện có. Ví dụ: bạn có thể sử dụng lệnh ALTER TABLE theo sau mệnh đề ALTER COLUMN.



Cú pháp như sau:

THAY ĐỔI BẢNG tên_bảng
THAY ĐỔI COLUMN tên_cột SET NOT NULL;

Thay table_name bằng bảng mục tiêu của bạn và column_name bằng cột mục tiêu mà bạn muốn áp dụng ràng buộc.

Xác minh ràng buộc

Bạn có thể xác minh rằng ràng buộc tồn tại trên một bảng nhất định bằng cách sử dụng lệnh “\d” trong tiện ích PSQL.

\d tên_bảng

Ví dụ:

sample_db=# \d wp_users;

Đầu ra kết quả như sau:

Xóa ràng buộc NOT NULL

Bạn cũng có thể muốn xóa ràng buộc NOT NULL khỏi một cột nhất định. Để làm được điều đó, chúng ta có thể sử dụng các mệnh đề ALTER TABLE và ALTER COLUMN như sau:

THAY ĐỔI BẢNG tên_bảng
THAY ĐỔI COLUMN column_name DROP NOT NULL;

Ví dụ: để xóa ràng buộc NOT NULL khỏi cột user_url của bảng wp_users, chúng ta có thể chạy truy vấn sau:

THAY ĐỔI BẢNG wp_users THAY ĐỔI CỘT user_url DROP NOT NULL;

Điều này sẽ loại bỏ các ràng buộc khỏi bảng.

Phần kết luận

Hướng dẫn này khám phá cách chúng ta có thể làm việc với ràng buộc NOT NOLL trong PostgreSQL. Chúng tôi cũng đã khám phá cách loại bỏ ràng buộc NOT NULL hiện có khỏi một cột nhất định.