Mengisytiharkan lajur sebagai "BUKAN NULL" bermakna lajur tidak menerima nilai NULL, tetapi menerima sifar (0), dan rentetan kosong itu sendiri ialah nilai. Jadi jika kita ingin memasukkan sifar atau rentetan kosong ke dalam lajur MySQL yang ditakrifkan sebagai NOT NULL, tidak akan ada masalah. Ini akan menjadi jelas apabila membandingkan 0 dan rentetan kosong kepada NULL -
mysql> Select 0 IS NULL, 0 IS NOT NULL; +-----------+---------------+ | 0 IS NULL | 0 IS NOT NULL | +-----------+---------------+ | 0 | 1 | +-----------+---------------+ 1 row in set (0.00 sec)
Set hasil di atas menunjukkan bahawa sifar (0) bukan NULL. Ini bermakna sifar (0) itu sendiri adalah nilai, kerana kita tahu bahawa NULL bermakna tiada nilai.
mysql> Select '' IS NULL, '' IS NOT NULL; +------------+----------------+ | '' IS NULL | '' IS NOT NULL | +------------+----------------+ | 0 | 1 | +------------+----------------+ 1 row in set (0.00 sec)
Set keputusan di atas menunjukkan bahawa rentetan kosong (‘’) bukan NULL. Ini bermakna rentetan kosong ('') itu sendiri adalah nilai, kerana kita tahu bahawa NULL bermakna tiada nilai.
mysql> create table test(id int NOT NULL, Name Varchar(10)); Query OK, 0 rows affected (0.19 sec) mysql> Insert into test6(id, name) values('1', 'Gaurav'),('0','Rahul'),('','Aarav'); Query OK, 3 rows affected, 1 warning (0.08 sec) Records: 3 Duplicates: 0 Warnings: 1 Warning (Code 1366): Incorrect integer value: '' for column 'id' at row 3 mysql> Select * from test; +----+--------+ | id | Name | +----+--------+ | 1 | Gaurav | | 0 | Rahul | | 0 | Aarav | +----+--------+ 3 rows in set (0.00 sec)
Seperti yang anda lihat daripada set hasil di atas, kita boleh memasukkan sifar (0) rentetan kosong ("") ke dalam lajur yang diisytiharkan sebagai BUKAN NULL.
Atas ialah kandungan terperinci Bagaimana untuk memasukkan sifar atau rentetan kosong ke dalam lajur MySQL yang ditakrifkan sebagai NOT NULL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!