示例
示例
-- 金额必须为正
ALTER TABLE orders
ADD CONSTRAINT chk_total_positive CHECK (total > 0);
-- 多条件组合
ALTER TABLE orders
ADD CONSTRAINT chk_status_valid
CHECK (status IN ('new', 'paid', 'shipped', 'done'));
-- 删除约束
ALTER TABLE orders DROP CONSTRAINT chk_total_positive; -- MySQL 8.0.19+ 支持 DROP CONSTRAINT
ALTER TABLE orders DROP CONSTRAINT chk_status_valid; -- PostgreSQL| 强制执行 | MySQL 8.0.16 起生效;更早版本解析但忽略 |
|---|---|
| NULL | CHECK (col > 0) 对 NULL 为未知,不拦截 NULL |
| 命名 | 显式命名便于后续定位与删除 |