MySQL中的DEFAULT
关键字用于指定列的默认值。当插入新记录时,如果没有为该列提供值,MySQL会自动使用默认值。这在创建表时定义列属性时非常有用。
DEFAULT 'John'
,为字符串列指定默认值。DEFAULT CURRENT_DATE
,为日期列指定当前日期作为默认值。DEFAULT
关键字,但具有类似的效果。假设有一个名为users
的表,其中包含以下列:
id
:自增主键name
:用户名email
:电子邮件created_at
:创建时间status
:用户状态,默认值为“活跃”创建表的SQL语句可能如下所示:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status VARCHAR(50) DEFAULT '活跃'
);
在这个例子中,created_at
列使用CURRENT_TIMESTAMP
作为默认值,表示当插入新记录时自动记录当前时间。status
列使用字符串“活跃”作为默认值。
问题:插入数据时未指定某些列的值,但期望使用默认值,却发现没有生效。
原因:
解决方法:
DEFAULT
关键字设置了默认值。ALTER TABLE
语句进行修改。例如,修改status
列的默认值为“非活跃”:
ALTER TABLE users ALTER COLUMN status SET DEFAULT '非活跃';
更多关于MySQL默认值的信息,可以参考MySQL官方文档或相关教程。
领取专属 10元无门槛券
手把手带您无忧上云