89
我想在MySQL中創建一個boolean
列,默認值爲false
。但它默認接受NULL ...在MySQL中創建布爾列,默認值爲false?
我想在MySQL中創建一個boolean
列,默認值爲false
。但它默認接受NULL ...在MySQL中創建布爾列,默認值爲false?
您必須指定0
(意思是false)或1
(意思是true)作爲默認值。下面是一個例子:
create table mytable (
mybool boolean not null default 0
);
供參考: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真/假它給並接受真正的/錯誤的值沒有任何額外的代碼。
ALTER TABLE `itemcategory` ADD `aaa` ENUM('false', 'true') NOT NULL DEFAULT 'false'
尼斯確認 – 2012-09-25 11:58:02
還是呢?在shell腳本中,0可以表示成功或'true'。如果MySQL實際返回'true'和'false',那麼我們就不必依賴代碼來決定這個值的含義了。 – tudor 2015-05-28 03:17:32
順便提一句,由於布爾值是tinyint(1)的別名,這意味着您可以將布爾值設置爲除0和1之外的其他值,並且不會發生抱怨!這意味着如果你意外地增加或減少了字段,那麼你可以搞砸你的數據! :-O我建議使用ENUM字段。 – tudor 2015-05-28 03:21:03