🔒
SQL 约束速查
主键/外键/唯一/非空等 SQL 约束速查。
本地处理 · 不上传
加载工具中…
相关:sql · 约束 · 主键 · 外键 · 数据库
SQL 约束速查列出主键、外键、唯一、非空、检查与默认值约束的写法与行为。约束是数据完整性的最后一道防线。
使用步骤
- 按主键、外键、唯一、非空、检查分类定位
- 确认它是列级还是表级约束
- 注意外键会影响删除与更新行为
- 给约束显式命名,报错时才知道是哪一条
使用场景
- 设计表结构时添加约束
- 理解约束的行为差异
- 排查插入失败的原因
- 为已有表补充约束
小贴士
- 约束在数据库层面强制生效,应用层的校验可能被绕过(脚本直连、其他服务写入),数据库约束才是最后一道防线。
- 唯一约束允许多个 NULL(多数数据库中),因为 NULL 不等于 NULL。依赖唯一约束防重复时要注意这一点。
- 外键的级联行为要慎选。CASCADE 删除会连带删除子表记录,这在生产环境中可能造成意料之外的大量数据丢失。
常见问题
应用层校验够了,还需要数据库约束吗?
需要。应用校验可能被绕过——直连数据库的脚本、其他服务、数据修复操作都不经过你的代码。约束是唯一无法绕过的保证,性能开销通常也可以忽略。
唯一约束为什么没挡住重复?
如果重复的是 NULL 值。在多数数据库中 NULL 不等于任何值(包括另一个 NULL),因此唯一约束允许多行都是 NULL。需要真正唯一应同时加非空约束。
外键要不要用级联删除?
要非常谨慎。CASCADE 会在删除父记录时连带删除所有子记录,一次误操作可能清掉大量数据。多数场景更适合 RESTRICT(阻止删除)或 SET NULL,让删除行为显式可控。
SQL 约束速查是免费的吗?
是。本站所有工具完全免费,无需注册登录、无广告干扰,打开即用。
使用SQL 约束速查,我的数据安全吗?
安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。