空或空而不是0

时间:2016-05-09 19:47:16

标签: mysql sql

我创建了一个新表:

CREATE TABLE `test`.`tab1` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(50) NULL , `age` INT NULL , PRIMARY KEY (`id`));

当我插入新行但希望保持age为空时,我会这样做:

INSERT INTO `tab1` (`id`, `Name`, `Age`) VALUES (NULL, 'Peter', '');

我收到此条目:

| id | name  | age |
|----|-------|-----|
| 1  | Peter | 0   |

为什么年龄栏不会保持为空或NULL? 如何设置默认值,以便在插入时没有指定值时保持为空?

1 个答案:

答案 0 :(得分:2)

由于列的类型为int,因此数据库会尝试将字符串''转换为数字。那将是0

如果您没有值,请使用null代替''。这就是null的用途。