替换 H2 数据库 2.x 中的 CROSS_REFERENCES?
Replacement for CROSS_REFERENCES in H2 database 2.x?
随着2.x版本的H2数据库INFORMATION_SCHEMA
已经大规模重建:
Between version 1.4.200 and version 2.0.202 there have been considerable changes, such that a simple update is not possible.
不幸的是,tableCROSS_REFERENCES
现在好像不见了。
在 1.x 版本中,我可以从中读取 table 之间的关系。有 PKTABLE_NAME
、PKCOLUMN_NAME
、FKTABLE_NAME
、FKCOLUMN_NAME
、FK_NAME
和 PK_NAME
.
等列
到目前为止,我还没有在 INFORMATION_SCHEMA
2.x 的任何 table/view 中找到此信息。
有谁知道我怎样才能得到这些信息?
谢谢
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
包含有关表中定义的所有约束的信息。如果 CONSTRAINT_TYPE
列包含值 PRIMARY KEY
或 UNIQUE
,则此约束可以被引用约束引用。引用(外键)约束的类型为 REFERENTIAL
.
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
包含引用约束和它们引用的唯一/主键约束之间的链接。
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
包含有关主键、唯一和引用约束的列的信息。请注意,multi-column 引用约束可能会以任何顺序引用具有相同列集的唯一或主键约束,因此对于 multi-column 引用约束,您需要同时检查 ORDINAL_POSITION
和 POSITION_IN_UNIQUE_CONSTRAINT
以正确确定链接列。
所有这些表都在 第 11 部分:信息和定义模式 (SQL/Schemata) 的 SQL 标准中进行了标准化,因此它们或多或少可移植到所有具有标准 INFORMATION_SCHEMA
.
的数据库
随着2.x版本的H2数据库INFORMATION_SCHEMA
已经大规模重建:
Between version 1.4.200 and version 2.0.202 there have been considerable changes, such that a simple update is not possible.
不幸的是,tableCROSS_REFERENCES
现在好像不见了。
在 1.x 版本中,我可以从中读取 table 之间的关系。有 PKTABLE_NAME
、PKCOLUMN_NAME
、FKTABLE_NAME
、FKCOLUMN_NAME
、FK_NAME
和 PK_NAME
.
到目前为止,我还没有在 INFORMATION_SCHEMA
2.x 的任何 table/view 中找到此信息。
有谁知道我怎样才能得到这些信息?
谢谢
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
包含有关表中定义的所有约束的信息。如果 CONSTRAINT_TYPE
列包含值 PRIMARY KEY
或 UNIQUE
,则此约束可以被引用约束引用。引用(外键)约束的类型为 REFERENTIAL
.
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
包含引用约束和它们引用的唯一/主键约束之间的链接。
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
包含有关主键、唯一和引用约束的列的信息。请注意,multi-column 引用约束可能会以任何顺序引用具有相同列集的唯一或主键约束,因此对于 multi-column 引用约束,您需要同时检查 ORDINAL_POSITION
和 POSITION_IN_UNIQUE_CONSTRAINT
以正确确定链接列。
所有这些表都在 第 11 部分:信息和定义模式 (SQL/Schemata) 的 SQL 标准中进行了标准化,因此它们或多或少可移植到所有具有标准 INFORMATION_SCHEMA
.