Tôi muốn tạo một bảng trong MySQL với một boolean
cột có giá trị mặc định là false
. Nhưng nó chấp nhận NULL như mặc định ...
Tôi muốn tạo một bảng trong MySQL với một boolean
cột có giá trị mặc định là false
. Nhưng nó chấp nhận NULL như mặc định ...
Câu trả lời:
Bạn phải chỉ định 0
(có nghĩa là sai) hoặc 1
(có nghĩa là đúng) làm mặc định. Đây là một ví dụ:
create table mytable (
mybool boolean not null default 0
);
FYI: boolean
là một bí danh cho tinyint(1)
.
Đây là bằng chứng:
mysql> create table mytable (
-> mybool boolean not null default 0
-> );
Query OK, 0 rows affected (0.35 sec)
mysql> insert into mytable () values ();
Query OK, 1 row affected (0.00 sec)
mysql> select * from mytable;
+--------+
| mybool |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)
FYI: Thử nghiệm của tôi đã được thực hiện trên phiên bản MySQL sau:
mysql> select version();
+----------------+
| version() |
+----------------+
| 5.0.18-max-log |
+----------------+
1 row in set (0.00 sec)
Sử dụng ENUM trong MySQL cho đúng / sai, nó cung cấp và chấp nhận các giá trị đúng / sai mà không cần thêm bất kỳ mã nào.
ALTER TABLE `itemcategory` ADD `aaa` ENUM('false', 'true') NOT NULL DEFAULT 'false'
Bạn có thể đặt giá trị mặc định tại thời điểm tạo như:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
Married boolean DEFAULT false);
Nếu bạn đang tạo cột boolean là null thì giá trị 'mặc định' mặc định là sai; bạn không cần phải xác định rõ ràng.