DEFAULT约束有什么用?
在数据库中,DEFAULT是一种约束,它用于给列赋默认值。当插入数据时,如果没有提供该列的值,系统就会自动使用该列的默认值。DEFAULT约束有以下两种使用场景:
- 指定列的默认值:当创建表时,可以为列设置DEFAULT约束,来指定该列在插入数据时应该使用的默认值。例如,当创建用户表时,可以设置DEFAULT约束,将所有用户的年龄默认值设置为18岁:
CREATE TABLE user (
id BIGINT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT DEFAULT 18
);
这样,当插入一行数据时,如果没有提供年龄列的值,系统就会自动使用18作为该列的默认值。
- 更改现有列的默认值:除了在创建表时设置DEFAULT约束,还可以使用ALTER TABLE语句来修改现有列的默认值。例如,可以将用户表的所有用户的年龄默认值更改为20岁:
ALTER TABLE user ALTER COLUMN age SET DEFAULT 20;
阅读更多:MySQL 教程
DEFAULT约束的使用注意事项
- 默认值必须符合列的数据类型。例如,如果列的数据类型是整型,则默认值也必须是整型。
- 如果对于某列的默认值需要使用数据库函数或表达式计算得出,则需要在DEFAULT约束中指定该函数或表达式。例如,可以将用户表的所有用户的注册时间默认值设置为当前时间:
CREATE TABLE user (
id BIGINT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
reg_time TIMESTAMP DEFAULT now()
);
总结
DEFAULT约束是一种在数据库中指定列默认值的方法。在创建表时,可以使用DEFAULT约束为列设置默认值,在插入数据时,如果没有提供该列的值,则会自动使用该列的默认值。同时,也可以使用ALTER TABLE语句来更改现有列的默认值。使用DEFAULT约束时,需要注意默认值必须符合列的数据类型,如果需要使用表达式或函数计算默认值,则需要在DEFAULT约束中指定。
极客笔记