遇到unique constraint错误,如何查看Oracle SQL中Check Constraint的规则?
查看Check Constraint约束规则的方法
针对不同数据库的操作命令
MySQL
从information_schema.CHECK_CONSTRAINTS系统表中查询,需指定目标数据库和表名:
SELECT CONSTRAINT_NAME, CHECK_CLAUSE FROM information_schema.CHECK_CONSTRAINTS WHERE TABLE_SCHEMA = '你的数据库名称' AND TABLE_NAME = '你的表名称';
注意:MySQL 8.0.16版本才正式支持Check Constraint,更早版本会忽略该约束定义。
PostgreSQL
查询pg_constraint系统表,筛选类型为c(Check约束)的记录:
SELECT conname AS constraint_name, consrc AS check_rule FROM pg_constraint WHERE conrelid = '你的表名称'::regclass AND contype = 'c';
SQL Server
方法1:查询sys.check_constraints系统视图
SELECT name AS constraint_name, definition AS check_rule FROM sys.check_constraints WHERE parent_object_id = OBJECT_ID('你的表名称');
方法2:使用系统存储过程快速查看所有约束(含Check约束)
EXEC sp_helpconstraint '你的表名称';
Oracle
查询user_constraints系统表,筛选约束类型为C(Check约束)的记录,注意表名需大写(Oracle默认大写存储对象名):
SELECT constraint_name, search_condition AS check_rule FROM user_constraints WHERE table_name = '你的表名称' AND constraint_type = 'C';
可视化工具方式
如果不习惯命令行操作,可通过数据库可视化工具直接查看:
- Navicat:右键目标表 → 设计表 → 约束选项卡
- DataGrip:打开表结构面板 → 切换到Constraints标签页
- SSMS(SQL Server):展开表节点 → 右键Constraints → 查看属性
内容的提问来源于stack exchange,提问作者Henry
相关产品推荐
相关产品推荐

