我正在使用getExportedKeys
JDBC方法。它在Oracle中工作正常,但在MySQL中它返回空集。我尝试使用useInformationSchema=true
,但仍返回空集
让我知道getTables,getExportedKeys,getImportedKeys
是否适用于MySQL,sql,DB2,Postgres数据库。
答案 0 :(得分:0)
这取决于您使用的驱动程序和DataSource。 某些DataSorce实现提供了启用禁用DatabaseMetadata以获得更好性能的选项。
例如:请参阅以下信息链接 https://docs.oracle.com/cd/E21764_01/web.1111/e13753/db2.htm#JDBCD153
--->> CatalogOptions
确定当应用程序调用DatabaseMetaData方法时,结果集中包含哪种类型的元数据信息。
有效值:0 | 2 | 6,默认值为2。
如果为0,则结果集不包含同义词。
如果为2,结果集包含从以下DatabaseMetaData方法返回的同义词:getColumns(),getExportedKeys(),getFunctionColumns(),getFunctions(),getImportedKeys(),getIndexInfo(),getPrimaryKeys(),getProcedureColumns()和getProcedures()。
如果为6,则向驱动程序提供一个提示,以使用ResultSetMetaData对象模拟getColumns()调用,而不是查询数据库目录以获取列信息。结果集包含同义词。使用仿真可以提高性能,因为仿真制定的SQL语句不如使用getColumns()制定的SQL语句复杂。 getColumns()的参数必须求值为单个表。如果不是,例如,由于通配符或空值,驱动程序将恢复为getColumns()调用的默认行为。 <<< ------