Экспериментируя с представлениями 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
Для внешних ключей это имеет смысл: можно ссылаться на таблицу в другой схеме.
Теперь мне интересно, применимо ли это и к другим ограничениям. То есть возможно ли, что основное, уникальное или проверочное ограничение определено в другой схеме как схема, в которой определена таблица?
В каких случаях constraint_schema
будет отличаться от table_schema
в information_schema.table_constraints
?