- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 java DatabaseMetaData 获取外键并尝试过。
但我只得到外键引用 pk 列,无法引用唯一列。
我尝试使用 getCrossReference()、getImportedKeys() 模式和相同的结果。
这是我的代码,数据库是 Oracle11g。
ResultSet rset = databaseMetaData.getImportedKeys(null, dbName, tableName);
while(rset.next()){
String column_name = rset.getString("FKCOLUMN_NAME");
String pk_table = rset.getString("PKTABLE_NAME");
String pk_column = rset.getString("PKCOLUMN_NAME");
String constraint_name = rset.getString("FK_NAME");
System.out.println(column_name + " ==> " + pk_column + "(TBL:" + pk_table + ")(CN:" + constraint_name + ")");
}
rset.close();
该表有两个外键(一个是指 pk 列,另一个是指唯一列)但我只有一个日志。
有没有错误?
谢谢。
最佳答案
要获得引用的唯一列,您必须在 getString 中使用 PKCOLUMN_NAME
rset.getString("PKCOLUMN_NAME");
这里是完整的代码:
ResultSet rset = databaseMetaData.getImportedKeys(null, dbName, tableName);
while(rset.next()){
String column_name = rset.getString("FKCOLUMN_NAME");
String pk_table = rset.getString("PKTABLE_NAME");
String pk_column = rset.getString("PKCOLUMN_NAME");
String constraint_name = rset.getString("PKCOLUMN_NAME");
System.out.println(" "+column_name+" reference to "+ pk_table+"("+constraint_name+")");
}
rset.close();
关于java - 无法使用 JAVA DatabaseMetaData 获取外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21570748/
我将 JDBC 与 mysql-connector-java-6.0.2.jar 一起使用,并且除非我做错了什么,否则我认为 DatabaseMetaData.ownDeletesAreVisible
我有一个使用 JDBC-OBDC 的 Java 小应用程序的奇怪情况。我正在使用 DatabaseMetaData 类检查数据库。当我执行该程序时,一切正常。但是,当我想调试以查看包含 Databas
我在 Oracle 数据库中有一些用户,假设 UserOne、UserTwo 和 UserTree 具有相同且非空的表,名称为“tableExample”。 就我而言,我需要通过 getColumns
DatabaseMetaData().getTables() - 速度很慢,有什么替代方法吗? 以下是我的实际代码: connection.getMetaData().getTables(null,n
我在使用 Java 和 NetBeans 从本地运行的 Ubuntu 14 MySQL 连接检索元数据时遇到问题。我从 DatabaseMetaData 对象的 getColumns 方法得到一个空的
我正在使用 MySql、JDBC、Java 来编写我的代码。我无法理解 API 中某些术语的含义。它阻止我做下面的工作-要编写检查特定数据库是否存在的代码,然后检查该数据库中是否存在特定表数据库,然后
我知道如何使用 .getTables() 获取 TABLE 和 ALIAS 条目。 final ResultSet rs = dmd.getTables(null, "MySchema", "%",
元数据上的方法 getColumns() 为同义词返回一个空的结果集(对于表和 View ,它正确地返回列列表)。 这发生在 Oracle 11g Express 上并使用最新的 Oracle JDB
我正在研究 DatabaseMetaData 类以了解它是如何工作的。 java 文档注释似乎声明了一个 thing ,而代码却有所不同。我知道它是一个接口(interface),所以真正由提供 JD
我使用数据库元数据获取 SQL Server 上存储过程的列(读取参数): Connection connection = getConnection(); //getting the connect
trace_xe_action_map 和 trace_xe_event_map - 它们是什么以及它们在哪里?我不想归还那些。如何更改参数? 目前我正在使用: databaseMetadata.ge
我正在尝试 this 中解释的此接口(interface)的方法教程: 我来了: DatabaseMetaData dm = con.getMetaData(); System.err.println
我想使用 java DatabaseMetaData 获取外键并尝试过。 但我只得到外键引用 pk 列,无法引用唯一列。 我尝试使用 getCrossReference()、getImportedKe
我使用 oracle 11g,并创建了一个这样的表: create table test1( id int, name varchar(10), inserttime date ) 然后我用jdbc的
我正忙于编写一段代码以从 Oracle 数据库中获取表的所有列名。我想出的代码如下所示: DriverManager.registerDriver (new oracle.jdbc.driver.Or
我有一个 PostgreSQL 表 create table test ( id int, name varchar(2), active boolean, long_id bigint, creat
根据DatabaseMetaData#getFunctionColumns ,COLUMN_TYPE 的结果列可能是 之一 functionColumnUnknown (0) funtionColum
因此,我在一个需要能够编辑表格的项目中使用 Vaadin Java Web 框架。 Vaadin 提供了一种从 SimpleJDBCConnectionPool ( Here's the API )
什么是 Python 等价于 DatabaseMetaData 最佳答案 这不是特定于 python 的答案;事实上我不知道 Python 数据驱动程序是否有这种东西。但也许这些信息会有所帮助。 AN
我正在编写 java 类来获取所有连接数据库对象(表)。我用过 rs = meta.getExportedKeys(conn.getCatalog(), null, "account_adjustme
我是一名优秀的程序员,十分优秀!