MySQL 默认值
在 MySQL 中,可以为表的列指定默认值,这些默认值在插入新行时自动应用。如果插入语句没有为列指定值,MySQL 将使用默认值。
在创建表时指定默认值
在创建表时,可以在列的定义中指定默认值。例如:
CREATE TABLE students ( student_id INT PRIMARY KEY, student_name VARCHAR(50), email VARCHAR(50) DEFAULT NULL, add_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, age INT DEFAULT 0 );
在这个示例中:
email 列的默认值设置为NULL。
add_time 列的默认值为当前时间戳。
age 列的默认值设置为 0。
修改现有表的列添加默认值
可以使用 ALTER TABLE 语句来修改现有表的列并添加默认值。
ALTER TABLE students ALTER COLUMN age SET DEFAULT 18;
这将为 age 列设置默认值为 18。
插入新行时使用默认值
当执行 INSERT 语句时,如果没有为列提供值,则会使用列的默认值。例如:
INSERT INTO students(student_id, student_name) VALUES (1, 'Jerry');
在这个例子中,student_id 和 student_name 列将使用它们的默认值插入新的学生记录。
注意事项
默认值可以是常量值,也可以是表达式(例如 CURRENT_TIMESTAMP)。
如果列定义了默认值且允许 NULL 值,那么当插入新行时,如果未指定值或指定为 NULL,则会使用默认值。
若要删除现有列的默认值,可以使用 ALTER TABLE 语句并将默认值设为 NULL 或具体的其他值。