删列、默认值与空约束要点
- DROP COLUMN 列名 删除整列及其数据,不可恢复
- ALTER COLUMN 列 SET DEFAULT 值 设置新的默认值
- ALTER COLUMN 列 DROP DEFAULT 移除默认值
- MODIFY 时可顺带改 NOT NULL / 默认值的组合
- 删列前确认没有索引、外键、视图依赖它
- 改默认值只影响之后插入的行,历史数据不动
删列、默认值与空约束示例
-- 删除不再使用的年龄列
ALTER TABLE staff DROP COLUMN age;
-- 给状态列设置默认值
ALTER TABLE staff ALTER COLUMN status SET DEFAULT 'active';
-- 移除默认值
ALTER TABLE staff ALTER COLUMN status DROP DEFAULT;
-- 同时改成非空且有默认
ALTER TABLE staff MODIFY COLUMN salary DECIMAL(10,2) NOT NULL DEFAULT 0;
避坑提醒:DROP COLUMN 是破坏性操作且没有回收站,执行前先 SELECT 确认该列无外键视图依赖,并留好备份。