JDBC Metada检索Constraint信息

jre*_*rey 5 oracle metadata jdbc

我需要从约束的名称有关表和列名称的信息.

有人类似于connection.getMetadata().getX来检索约束信息吗?

我的测试用例是在Oracle数据库中,但我只想用jdbc解决我的最佳解决方案

Mar*_*eel 7

如果您正在谈论外键和主键约束.该DatabaseMetaData确实提供了获取信息的方法:你可以使用getImportedKeys(..)getCrossReference(..)为外键,并getPrimaryKeys(..)getExportedKeys(..) 主键.

:你如何使用它们只是要小心,getCrossReference(..)并且getExportedKeys都有点反直觉在我看来.

如果您还需要唯一约束,那么您应该可以使用getIndexInfo(..)传递true参数unique.


Rav*_*ddy 5

你可以得到定义为从限制信息USER_CONSTRAINTSALL_CONSTRAINTS表格。
您需要传递必需的 where 子句字段。

示例

select 
    CONSTRAINT_NAME,
    CONSTRAINT_TYPE,
    TABLE_NAME,
    ...
from
    USER_CONSTRAINTS
where
    CONSTRAINT_NAME like concat(?, '%');
Run Code Online (Sandbox Code Playgroud)