Mysql

MySQL 插入 NULL 插入 0

  • June 30, 2017

我正在使用 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是一個數字。不使用正確鍵入的文字可能會導致不使用索引。

引用自:https://dba.stackexchange.com/questions/177681