Ich möchte eine Tabelle in MySQL mit einer boolean
Spalte erstellen, deren Standardwert ist false
. Aber es akzeptiert NULL als Standard ...
Ich möchte eine Tabelle in MySQL mit einer boolean
Spalte erstellen, deren Standardwert ist false
. Aber es akzeptiert NULL als Standard ...
Antworten:
Sie müssen als Standard 0
(falsch) oder 1
(wahr) angeben . Hier ist ein Beispiel:
create table mytable (
mybool boolean not null default 0
);
Zu Ihrer Information: boolean
ist ein Alias für tinyint(1)
.
Hier ist der Beweis:
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)
Zu Ihrer Information: Mein Test wurde mit der folgenden Version von MySQL durchgeführt:
mysql> select version();
+----------------+
| version() |
+----------------+
| 5.0.18-max-log |
+----------------+
1 row in set (0.00 sec)
Verwenden Sie ENUM in MySQL für true / false, um die true / false-Werte ohne zusätzlichen Code anzugeben und zu akzeptieren.
ALTER TABLE `itemcategory` ADD `aaa` ENUM('false', 'true') NOT NULL DEFAULT 'false'
Sie können beim Erstellen einen Standardwert festlegen, wie:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
Married boolean DEFAULT false);
Wenn Sie die boolesche Spalte als nicht null festlegen, ist der Standardwert 'default' false. Sie müssen es nicht explizit angeben.