我创建了一个新表:
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
?
如何设置默认值,以便在插入时没有指定值时保持为空?
答案 0 :(得分:2)
由于列的类型为int
,因此数据库会尝试将字符串''
转换为数字。那将是0
。
如果您没有值,请使用null
代替''
。这就是null
的用途。