约束

约束是数据库对数据合法性施加的规则,用来把结构边界和业务不变量下沉到数据库层。

#type / concept #status / growing #tech / dev / backend #resource / database #resource / sql

[!info] related notes

约束

一句话定义

约束是数据库用来限制哪些数据可以进入表、哪些状态被视为合法的规则。

核心机制 / 工作原理

常见约束包括:

  • NOT NULL
  • UNIQUE
  • CHECK
  • DEFAULT
  • PRIMARY KEY
  • FOREIGN KEY

它们的共同目标是:让错误数据尽量在写入阶段就被拦下,而不是等到业务出错后再补救。

最小例子 / 最小场景

CREATE TABLE users (
  id BIGINT PRIMARY KEY,
  email VARCHAR(255) NOT NULL UNIQUE,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

这里主键、非空、唯一和默认值都属于约束体系的一部分。

边界与易混淆点

  • 约束不是“语法更完整”的装饰,而是数据质量边界。
  • 不是所有业务规则都能优雅表达为数据库约束,但能下沉的一般应该优先下沉。
  • 主键和外键本身也属于约束,而不是独立于约束之外的另一套东西。
创建于 2026/5/5 更新于 2026/5/27