Saya ingin membuat tabel di MySQL dengan boolean
kolom yang nilai default-nya adalah false
. Tapi itu menerima NULL sebagai default ...
Saya ingin membuat tabel di MySQL dengan boolean
kolom yang nilai default-nya adalah false
. Tapi itu menerima NULL sebagai default ...
Jawaban:
Anda harus menentukan 0
(artinya salah) atau 1
(artinya benar) sebagai default. Berikut ini contohnya:
create table mytable (
mybool boolean not null default 0
);
FYI: boolean
adalah alias untuk tinyint(1)
.
Ini buktinya:
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: Pengujian saya dilakukan pada versi MySQL berikut:
mysql> select version();
+----------------+
| version() |
+----------------+
| 5.0.18-max-log |
+----------------+
1 row in set (0.00 sec)
Gunakan ENUM di MySQL untuk benar / salah yang diberikan dan menerima nilai benar / salah tanpa kode tambahan.
ALTER TABLE `itemcategory` ADD `aaa` ENUM('false', 'true') NOT NULL DEFAULT 'false'
Anda dapat mengatur nilai default pada saat pembuatan seperti:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
Married boolean DEFAULT false);
Jika Anda membuat kolom boolean bukan null maka nilai default 'default' adalah false; Anda tidak harus menentukannya secara eksplisit.