Ich möchte eine Tabelle in MySQL mit einer booleanSpalte erstellen, deren Standardwert ist false. Aber es akzeptiert NULL als Standard ...
Ich möchte eine Tabelle in MySQL mit einer booleanSpalte 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: booleanist 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.