MySQL:约束规则的具体定义在数据字典中存储于哪个表?
查找存储CHECK约束具体规则的系统表
你可以通过information_schema.CHECK_CONSTRAINTS系统表获取CHECK约束的具体定义,这个表专门存储CHECK约束的规则内容,能弥补TABLE_CONSTRAINTS仅提供约束名称和类型的不足。
查询示例
针对你提到的TESTE7表,可通过以下SQL查询其CHECK约束的具体规则:
SELECT CONSTRAINT_NAME, CHECK_CLAUSE FROM information_schema.CHECK_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = '你的数据库名' AND TABLE_NAME = 'TESTE7';
执行后会返回类似结果:
+----------------+---------------------------+ | CONSTRAINT_NAME| CHECK_CLAUSE | +----------------+---------------------------+ | id_check | ((`ID` between 1 and 10)) | +----------------+---------------------------+
注意事项
- 该表仅在MySQL 8.0及以上版本中可用,因为MySQL 8.0才正式完善了CHECK约束的支持(此前版本的CHECK约束仅允许语法定义,但实际不生效)。
- 查询时需指定
CONSTRAINT_SCHEMA(对应数据库名称),避免跨库查询导致结果不准确。
内容的提问来源于stack exchange,提问作者Astora
相关产品推荐
相关产品推荐

