🔒

SQL 约束速查

主键/外键/唯一/非空等 SQL 约束速查。

本地处理 · 不上传

加载工具中…

相关:sql · 约束 · 主键 · 外键 · 数据库

SQL 约束速查列出主键、外键、唯一、非空、检查与默认值约束的写法与行为。约束是数据完整性的最后一道防线。

使用步骤

  1. 按主键、外键、唯一、非空、检查分类定位
  2. 确认它是列级还是表级约束
  3. 注意外键会影响删除与更新行为
  4. 给约束显式命名,报错时才知道是哪一条

使用场景

  • 设计表结构时添加约束
  • 理解约束的行为差异
  • 排查插入失败的原因
  • 为已有表补充约束

小贴士

  • 约束在数据库层面强制生效,应用层的校验可能被绕过(脚本直连、其他服务写入),数据库约束才是最后一道防线。
  • 唯一约束允许多个 NULL(多数数据库中),因为 NULL 不等于 NULL。依赖唯一约束防重复时要注意这一点。
  • 外键的级联行为要慎选。CASCADE 删除会连带删除子表记录,这在生产环境中可能造成意料之外的大量数据丢失。

常见问题

应用层校验够了,还需要数据库约束吗?

需要。应用校验可能被绕过——直连数据库的脚本、其他服务、数据修复操作都不经过你的代码。约束是唯一无法绕过的保证,性能开销通常也可以忽略。

唯一约束为什么没挡住重复?

如果重复的是 NULL 值。在多数数据库中 NULL 不等于任何值(包括另一个 NULL),因此唯一约束允许多行都是 NULL。需要真正唯一应同时加非空约束。

外键要不要用级联删除?

要非常谨慎。CASCADE 会在删除父记录时连带删除所有子记录,一次误操作可能清掉大量数据。多数场景更适合 RESTRICT(阻止删除)或 SET NULL,让删除行为显式可控。

SQL 约束速查是免费的吗?

是。本站所有工具完全免费,无需注册登录、无广告干扰,打开即用。

使用SQL 约束速查,我的数据安全吗?

安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。