如何在MySQL中为空行设置默认值?
在MySQL中,当某些字段允许为空时,若插入数据时没有指定该字段的值,该字段会被默认设置为空。但是,当我们在设计表时,有时候希望该字段即使为空,也要有一个默认值。本文将介绍如何在MySQL中为空行设置默认值。
阅读更多:MySQL 教程
创建表格
首先,我们创建一个students表,其中包含三个字段:id、name和age。其中,id字段为自增长,name和age字段允许为空。
CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
设置默认值
我们希望,当插入数据时,若age字段为空,则默认为20。我们需要修改students表的定义。
ALTER TABLE `students` MODIFY COLUMN `age` int(11) DEFAULT 20;
上述语句会将age字段的默认值设为20。当插入数据时,若未指定age字段的值,则会自动将其设为20。
现在,我们向students表中插入一些数据来验证一下:
INSERT INTO `students` (`name`) VALUES('张三');
上述语句向students表中插入了一条数据,其中age字段未指定,但是它的值被自动设为了20。
修改默认值
如果我们想修改age字段的默认值,只需要再次使用ALTER TABLE语句即可。
ALTER TABLE `students` MODIFY COLUMN `age` int(11) DEFAULT 18;
上述语句将age字段的默认值改为了18。
删除默认值
如果我们想将age字段的默认值删除,可以使用如下语句:
ALTER TABLE `students` MODIFY COLUMN `age` int(11) DEFAULT NULL;
上述语句将age字段的默认值删除,当插入数据时,若未指定age字段的值,则会将其设为NULL。
结论
MySQL中为字段设置默认值是一项重要的设计,使得我们可以更加严格地控制数据的合法性。当我们需要为某些字段设置默认值时,只需要在定义表格时指定即可,非常方便。