插件窝 干货文章 SQL 添加列时如何设置默认值

SQL 添加列时如何设置默认值

默认 列名 ALTER DEFAULT 241    来源:    2025-03-29

在SQL中添加列并设置默认值

在SQL中,当你需要向现有表添加新列时,可以同时为该列设置默认值。以下是不同数据库系统中添加带默认值列的方法:

标准SQL语法

ALTER TABLE 表名
ADD COLUMN 列名 数据类型 DEFAULT 默认值;

各数据库系统具体实现

MySQL/MariaDB

ALTER TABLE 表名
ADD COLUMN 列名 数据类型 DEFAULT 默认值;

示例:

ALTER TABLE users
ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

PostgreSQL

ALTER TABLE 表名
ADD COLUMN 列名 数据类型 DEFAULT 默认值;

示例:

ALTER TABLE products
ADD COLUMN in_stock BOOLEAN DEFAULT TRUE;

SQL Server

ALTER TABLE 表名
ADD 列名 数据类型 CONSTRAINT 约束名 DEFAULT 默认值;

示例:

ALTER TABLE orders
ADD status VARCHAR(20) CONSTRAINT df_status DEFAULT 'pending';

Oracle

ALTER TABLE 表名
ADD (列名 数据类型 DEFAULT 默认值);

示例:

ALTER TABLE employees
ADD (is_active NUMBER(1) DEFAULT 1);

注意事项

  1. 默认值必须与列的数据类型兼容
  2. 添加列后,现有行中的该列值将被设置为默认值
  3. 某些数据库允许使用函数作为默认值(如CURRENT_TIMESTAMP
  4. 在某些数据库中,可以稍后使用ALTER TABLE修改默认值

修改现有列的默认值

如果需要修改已有列的默认值:

ALTER TABLE 表名
ALTER COLUMN 列名 SET DEFAULT 新默认值;  -- PostgreSQL/SQL Server

-- MySQL
ALTER TABLE 表名
ALTER 列名 SET DEFAULT 新默认值;

-- Oracle
ALTER TABLE 表名
MODIFY 列名 DEFAULT 新默认值;

希望这些信息对你有帮助!如有特定数据库系统的具体问题,可以进一步询问。