关于information_schema视图中跨模式定义约束的技术咨询
跨模式约束在information_schema中的体现
最近在测试information_schema下的各类视图时,我发现了一个值得注意的特性:约束可以被定义在目标表所在的模式之外。
这一点在information_schema.table_constraints视图里有明确的体现——这个视图特意新增了constraint_schema列,用来标识约束本身所属的模式。执行以下查询就能看到完整的列结构:
SELECT * FROM information_schema.table_constraints;
返回的结果列包含:
constraint_catalog | constraint_schema | constraint_name | table_catalog | table_schema | table_name | constraint_type | is_deferrable | initially_deferred
对于外键约束而言,这种设计的合理性非常突出:它允许我们在不同模式的表之间建立参照关联,不用强行把相关表归到同一个模式下。这样既保留了各模式的独立性和职责划分,又能很好地维护数据的参照完整性,在复杂的数据库架构里特别实用。
内容的提问来源于stack exchange,提问作者schizofrenic_bit
相关产品推荐
相关产品推荐

