ผมต้องการสร้างตารางใน MySQL ด้วยคอลัมน์ที่มีค่าเริ่มต้นคือboolean
false
แต่มันยอมรับ NULL เป็นค่าเริ่มต้น ...
ผมต้องการสร้างตารางใน MySQL ด้วยคอลัมน์ที่มีค่าเริ่มต้นคือboolean
false
แต่มันยอมรับ NULL เป็นค่าเริ่มต้น ...
คำตอบ:
คุณต้องระบุ0
(หมายถึงเท็จ) หรือ1
(หมายถึงจริง) เป็นค่าเริ่มต้น นี่คือตัวอย่าง:
create table mytable (
mybool boolean not null default 0
);
FYI: boolean
เป็นนามแฝงสำหรับtinyint(1)
.
นี่คือหลักฐาน:
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: การทดสอบของฉันทำกับ MySQL เวอร์ชันต่อไปนี้:
mysql> select version();
+----------------+
| version() |
+----------------+
| 5.0.18-max-log |
+----------------+
1 row in set (0.00 sec)
ใช้ ENUM ใน MySQL สำหรับ true / false ซึ่งให้และยอมรับค่าจริง / เท็จโดยไม่มีรหัสเพิ่มเติมใด ๆ
ALTER TABLE `itemcategory` ADD `aaa` ENUM('false', 'true') NOT NULL DEFAULT 'false'
คุณสามารถตั้งค่าเริ่มต้นในเวลาสร้างเช่น:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
Married boolean DEFAULT false);
หากคุณกำลังทำให้คอลัมน์บูลีนไม่เป็นโมฆะค่าเริ่มต้น 'ค่าเริ่มต้น' จะเป็นเท็จ คุณไม่จำเป็นต้องระบุอย่างชัดเจน