Select0ISNULL,0ISNOTNULL;+-----------+----------------+ |0ISNULL |0ISNOTNULL|+-----------+---------------+|"/> Select0ISNULL,0ISNOTNULL;+-----------+----------------+ |0ISNULL |0ISNOTNULL|+-----------+---------------+|">

Rumah >pangkalan data >tutorial mysql >Bagaimana untuk memasukkan sifar atau rentetan kosong ke dalam lajur MySQL yang ditakrifkan sebagai NOT NULL?

Bagaimana untuk memasukkan sifar atau rentetan kosong ke dalam lajur MySQL yang ditakrifkan sebagai NOT NULL?

WBOY
WBOYke hadapan
2023-09-19 13:57:141537semak imbas

如何将零或空字符串插入到定义为 NOT NULL 的 MySQL 列中?

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.

Contoh

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam