Trong MySQL, ràng buộc DEFAULT được sử dụng để xác định giá trị mặc định cho một cột trong bảng khi không có giá trị được cung cấp cho cột đó trong câu lệnh INSERT. Ràng buộc này là một phần của định nghĩa cột khi tạo bảng hoặc khi sửa đổi cấu trúc bảng.
Cú pháp
Định nghĩa mặc định khi tạo bảng (CREATE TABLE):
CREATE TABLE table_name (
column1 datatype DEFAULT default_value,
column2 datatype DEFAULT default_value,
...
);
Ví dụ, khi tạo bảng users và muốn cột status mặc định là 'active':
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
status VARCHAR(20) DEFAULT 'active'
);
Thêm ràng buộc mặc định cho cột khi sửa đổi bảng (ALTER TABLE):
ALTER TABLE table_name
ALTER COLUMN column_name SET DEFAULT default_value;
Ví dụ, khi thêm mặc định cho cột status trong bảng users:
ALTER TABLE users
ALTER COLUMN status SET DEFAULT 'active';
Lợi ích của ràng buộc DEFAULT
Đảm bảo dữ liệu hợp lệ: Ràng buộc DEFAULT đảm bảo rằng mỗi khi thêm bản ghi mới vào bảng, các cột có giá trị mặc định được cung cấp nếu không có giá trị nào được chỉ định.
Giảm lỗi nhập liệu: Ngăn ngừa các lỗi do thiếu thông tin bắt buộc, bằng cách cung cấp giá trị mặc định hợp lệ.
Thuận tiện khi sửa đổi cấu trúc bảng: Cho phép thêm, sửa đổi các cột mà không cần cập nhật lại toàn bộ dữ liệu có sẵn.
Lưu ý khi sử dụng ràng buộc DEFAULT
Ưu tiên ràng buộc trong lệnh INSERT: Giá trị được cung cấp trong câu lệnh INSERT sẽ có ưu tiên hơn so với giá trị mặc định được định nghĩa bởi ràng buộc DEFAULT.
Không thể áp dụng cho các cột số tự tăng (AUTO_INCREMENT): Các cột số tự tăng không thể có giá trị mặc định do giá trị này được hệ quản trị cơ sở dữ liệu quản lý tự động.
Thay đổi ràng buộc DEFAULT: Bạn có thể thay đổi giá trị mặc định của cột bằng cách sử dụng lệnh ALTER TABLE, nhưng điều này có thể ảnh hưởng đến các bản ghi có sẵn trong bảng.
Ràng buộc DEFAULT là một công cụ hữu ích trong MySQL để quản lý dữ liệu và đảm bảo tính nhất quán trong các bảng cơ sở dữ liệu.