Mysql
MySQL 插入 NULL 插入 0
我正在使用 MySQL 和 PhpMyAdmin,我有一個名為的表
items
- 結構如下;+------+---------+------+---------+ | name | type | Null | Default | +------+---------+------+---------+ | id | int(11) | No | None | +------+---------+------+---------+ | year | int(4) | Yes | Null | +------+---------+------+---------+
在 PhpMyAdmin 中,我執行以下查詢;
UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
這成功執行。
然後我執行這個查詢;
SELECT * FROM `item` WHERE `item_id` = '5'
這成功執行並產生以下內容;
+-----+------+ | id | year | +-----+------+ | 5 | 0 | +-----+------+
為什麼是這個
year
領域0
——不應該是NULL
嗎?難道我做錯了什麼?
''
是一個空字元串,它不是一個NULL
值。其他 DBMS 會首先正確地拒絕您的更新語句(因為將字元串分配給數字是無效的)。
如果你想設置一些東西,
null
那麼null
不要使用空字元串UPDATE item SET item_publication_year = null WHERE item_id = 5
您還應該為數據類型使用正確的文字類型。
'5'
是一個字元串,它不是一個數字。5
是一個數字。不使用正確鍵入的文字可能會導致不使用索引。