其他模式中的约束
Constraints in other schema
在试验 information_schema.*
视图时,我了解到可以在另一个模式中定义约束。这反映在 information_schema.table_constraints
视图中,它添加了诸如 constaint_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
对于外键,这是有道理的:可以在另一个模式中引用 table。
我现在想知道这是否也适用于其他约束。也就是说,是否有可能在另一个模式中将主要约束、唯一约束或检查约束定义为定义 table 的模式?
在哪些情况下 constraint_schema
与 information_schema.table_constraints
中的 table_schema
不同?
https://www.postgresql.org/docs/current/static/sql-createindex.html
the index is always created in the same schema as its parent table
https://www.postgresql.org/docs/current/static/ddl-constraints.html
Adding a unique constraint will automatically create a unique B-tree
index on the column or group of columns listed in the constraint.
和
Adding a primary key will automatically create a unique B-tree index
on the column or group of columns listed in the primary key
因此 pk 或 unique 肯定会在相同模式中与 table 一起旅行。关于 check and not null - 我想不出任何方法来争论为什么它们不能在不同的模式中,但我也看不出它们如何出现在不同模式中的任何原因......
在试验 information_schema.*
视图时,我了解到可以在另一个模式中定义约束。这反映在 information_schema.table_constraints
视图中,它添加了诸如 constaint_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
对于外键,这是有道理的:可以在另一个模式中引用 table。
我现在想知道这是否也适用于其他约束。也就是说,是否有可能在另一个模式中将主要约束、唯一约束或检查约束定义为定义 table 的模式?
在哪些情况下 constraint_schema
与 information_schema.table_constraints
中的 table_schema
不同?
https://www.postgresql.org/docs/current/static/sql-createindex.html
the index is always created in the same schema as its parent table
https://www.postgresql.org/docs/current/static/ddl-constraints.html
Adding a unique constraint will automatically create a unique B-tree index on the column or group of columns listed in the constraint.
和
Adding a primary key will automatically create a unique B-tree index on the column or group of columns listed in the primary key
因此 pk 或 unique 肯定会在相同模式中与 table 一起旅行。关于 check and not null - 我想不出任何方法来争论为什么它们不能在不同的模式中,但我也看不出它们如何出现在不同模式中的任何原因......