Updated on 2025-03-13 GMT+08:00

java.sql.DatabaseMetaData

java.sql.DatabaseMetaData is an API for defining database objects.

Table 1 Support status for java.sql.DatabaseMetaData

Method

Return Type

Support JDBC 4.0 (Yes/No)

allProceduresAreCallable()

Boolean

Yes

allTablesAreSelectable()

Boolean

Yes

autoCommitFailureClosesAllResultSets()

Boolean

Yes

dataDefinitionCausesTransactionCommit()

Boolean

Yes

dataDefinitionIgnoredInTransactions()

Boolean

Yes

deletesAreDetected(int type)

Boolean

Yes

doesMaxRowSizeIncludeBlobs()

Boolean

Yes

generatedKeyAlwaysReturned()

Boolean

Yes

getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable)

ResultSet

Yes

getCatalogs()

ResultSet

Yes

getCatalogSeparator()

String

Yes

getCatalogTerm()

String

Yes

getClientInfoProperties()

ResultSet

Yes

getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern)

ResultSet

Yes

getConnection()

Connection

Yes

getCrossReference(String parentCatalog, String parentSchema, String parentTable, String foreignCatalog, String foreignSchema, String foreignTable)

ResultSet

Yes

getDefaultTransactionIsolation()

Integer

Yes

getExportedKeys(String catalog, String schema, String table)

ResultSet

Yes

getExtraNameCharacters()

String

Yes

getFunctionColumns(String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern)

ResultSet

Yes

getFunctions(String catalog, String schemaPattern, String functionNamePattern)

ResultSet

Yes

getIdentifierQuoteString()

String

Yes

getImportedKeys(String catalog, String schema, String table)

ResultSet

Yes

getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate)

ResultSet

Yes

getMaxBinaryLiteralLength()

Integer

Yes

getMaxCatalogNameLength()

Integer

Yes

getMaxCharLiteralLength()

Integer

Yes

getMaxColumnNameLength()

Integer

Yes

getMaxColumnsInGroupBy()

Integer

Yes

getMaxColumnsInIndex()

Integer

Yes

getMaxColumnsInOrderBy()

Integer

Yes

getMaxColumnsInSelect()

Integer

Yes

getMaxColumnsInTable()

Integer

Yes

getMaxConnections()

Integer

Yes

getMaxCursorNameLength()

Integer

Yes

getMaxIndexLength()

Integer

Yes

getMaxLogicalLobSize()

default long

Yes

getMaxProcedureNameLength()

Integer

Yes

getMaxRowSize()

Integer

Yes

getMaxSchemaNameLength()

Integer

Yes

getMaxStatementLength()

Integer

Yes

getMaxStatements()

Integer

Yes

getMaxTableNameLength()

Integer

Yes

getMaxTablesInSelect()

Integer

Yes

getMaxUserNameLength()

Integer

Yes

getNumericFunctions()

String

Yes

getPrimaryKeys(String catalog, String schema, String table)

ResultSet

Yes

getPartitionTablePrimaryKeys(String catalog, String schema, String table)

ResultSet

Yes

getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern)

ResultSet

Yes

getProcedures(String catalog, String schemaPattern, String procedureNamePattern)

ResultSet

Yes

getProcedureTerm()

String

Yes

getSchemas()

ResultSet

Yes

getSchemas(String catalog, String schemaPattern)

ResultSet

Yes

getSchemaTerm()

String

Yes

getSearchStringEscape()

String

Yes

getSQLKeywords()

String

Yes

getSQLStateType()

Integer

Yes

getStringFunctions()

String

Yes

getSystemFunctions()

String

Yes

getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern)

ResultSet

Yes

getTimeDateFunctions()

String

Yes

getTypeInfo()

ResultSet

Yes

getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types)

ResultSet

Yes

getURL()

String

Yes

getVersionColumns(String catalog, String schema, String table)

ResultSet

Yes

insertsAreDetected(int type)

Boolean

Yes

locatorsUpdateCopy()

Boolean

Yes

othersDeletesAreVisible(int type)

Boolean

Yes

othersInsertsAreVisible(int type)

Boolean

Yes

othersUpdatesAreVisible(int type)

Boolean

Yes

ownDeletesAreVisible(int type)

Boolean

Yes

ownInsertsAreVisible(int type)

Boolean

Yes

ownUpdatesAreVisible(int type)

Boolean

Yes

storesLowerCaseIdentifiers()

Boolean

Yes

storesMixedCaseIdentifiers()

Boolean

Yes

storesUpperCaseIdentifiers()

Boolean

Yes

supportsBatchUpdates()

Boolean

Yes

supportsCatalogsInDataManipulation()

Boolean

Yes

supportsCatalogsInIndexDefinitions()

Boolean

Yes

supportsCatalogsInPrivilegeDefinitions()

Boolean

Yes

supportsCatalogsInProcedureCalls()

Boolean

Yes

supportsCatalogsInTableDefinitions()

Boolean

Yes

supportsCorrelatedSubqueries()

Boolean

Yes

supportsDataDefinitionAndDataManipulationTransactions()

Boolean

Yes

supportsDataManipulationTransactionsOnly()

Boolean

Yes

supportsGetGeneratedKeys()

Boolean

Yes

supportsMixedCaseIdentifiers()

Boolean

Yes

supportsMultipleOpenResults()

Boolean

Yes

supportsNamedParameters()

Boolean

Yes

supportsOpenCursorsAcrossCommit()

Boolean

Yes

supportsOpenCursorsAcrossRollback()

Boolean

Yes

supportsOpenStatementsAcrossCommit()

Boolean

Yes

supportsOpenStatementsAcrossRollback()

Boolean

Yes

supportsPositionedDelete()

Boolean

Yes

supportsPositionedUpdate()

Boolean

Yes

supportsRefCursors()

Boolean

Yes

supportsResultSetConcurrency(int type, int concurrency)

Boolean

Yes

supportsResultSetType(int type)

Boolean

Yes

supportsSchemasInIndexDefinitions()

Boolean

Yes

supportsSchemasInPrivilegeDefinitions()

Boolean

Yes

supportsSchemasInProcedureCalls()

Boolean

Yes

supportsSchemasInTableDefinitions()

Boolean

Yes

supportsSelectForUpdate()

Boolean

Yes

supportsStatementPooling()

Boolean

Yes

supportsStoredFunctionsUsingCallSyntax()

Boolean

Yes

supportsStoredProcedures()

Boolean

Yes

supportsSubqueriesInComparisons()

Boolean

Yes

supportsSubqueriesInExists()

Boolean

Yes

supportsSubqueriesInIns()

Boolean

Yes

supportsSubqueriesInQuantifieds()

Boolean

Yes

supportsTransactionIsolationLevel(int level)

Boolean

Yes

supportsTransactions()

Boolean

Yes

supportsUnion()

Boolean

Yes

supportsUnionAll()

Boolean

Yes

updatesAreDetected(int type)

Boolean

Yes

getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)

ResultSet

Yes

getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)

ResultSet

Yes

getTableTypes()

ResultSet

Yes

getUserName()

String

Yes

isReadOnly()

Boolean

Yes

nullsAreSortedHigh()

Boolean

Yes

nullsAreSortedLow()

Boolean

Yes

nullsAreSortedAtStart()

Boolean

Yes

nullsAreSortedAtEnd()

Boolean

Yes

getDatabaseProductName()

String

Yes

getDatabaseProductVersion()

String

Yes

getDriverName()

String

Yes

getDriverVersion()

String

Yes

getDriverMajorVersion()

Integer

Yes

getDriverMinorVersion()

Integer

Yes

usesLocalFiles()

Boolean

Yes

usesLocalFilePerTable()

Boolean

Yes

supportsMixedCaseIdentifiers()

Boolean

Yes

storesUpperCaseIdentifiers()

Boolean

Yes

storesLowerCaseIdentifiers()

Boolean

Yes

supportsMixedCaseQuotedIdentifiers()

Boolean

Yes

storesUpperCaseQuotedIdentifiers()

Boolean

Yes

storesLowerCaseQuotedIdentifiers()

Boolean

Yes

storesMixedCaseQuotedIdentifiers()

Boolean

Yes

supportsAlterTableWithAddColumn()

Boolean

Yes

supportsAlterTableWithDropColumn()

Boolean

Yes

supportsColumnAliasing()

Boolean

Yes

nullPlusNonNullIsNull()

Boolean

Yes

supportsConvert()

Boolean

Yes

supportsConvert(int fromType, int toType)

Boolean

Yes

supportsTableCorrelationNames()

Boolean

Yes

supportsDifferentTableCorrelationNames()

Boolean

Yes

supportsExpressionsInOrderBy()

Boolean

Yes

supportsOrderByUnrelated()

Boolean

Yes

supportsGroupBy()

Boolean

Yes

supportsGroupByUnrelated()

Boolean

Yes

supportsGroupByBeyondSelect()

Boolean

Yes

supportsLikeEscapeClause()

Boolean

Yes

supportsMultipleResultSets()

Boolean

Yes

supportsMultipleTransactions()

Boolean

Yes

supportsNonNullableColumns()

Boolean

Yes

supportsMinimumSQLGrammar()

Boolean

Yes

supportsCoreSQLGrammar()

Boolean

Yes

supportsExtendedSQLGrammar()

Boolean

Yes

supportsANSI92EntryLevelSQL()

Boolean

Yes

supportsANSI92IntermediateSQL()

Boolean

Yes

supportsANSI92FullSQL()

Boolean

Yes

supportsIntegrityEnhancementFacility()

Boolean

Yes

supportsOuterJoins()

Boolean

Yes

supportsFullOuterJoins()

Boolean

Yes

supportsLimitedOuterJoins()

Boolean

Yes

isCatalogAtStart()

Boolean

Yes

supportsSchemasInDataManipulation()

Boolean

Yes

supportsSavepoints()

Boolean

Yes

supportsResultSetHoldability(int holdability)

Boolean

Yes

getResultSetHoldability()

Integer

Yes

getDatabaseMajorVersion()

Integer

Yes

getDatabaseMinorVersion()

Integer

Yes

getJDBCMajorVersion()

Integer

Yes

getJDBCMinorVersion()

Integer

Yes

  • If the value of uppercaseAttributeName is true, the following APIs convert the query result to uppercase letters. The conversion range is the same as that of the toUpperCase method in Java.
    • public ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern)
    • public ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern)
    • public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)
    • public ResultSet getSchemas(String catalog, String schemaPattern)
    • public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)
    • public ResultSet getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern)
    • public ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern)
    • public ResultSet getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable)
    • public ResultSet getPrimaryKeys(String catalog, String schema, String table)
    • protected ResultSet getImportedExportedKeys(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable)
    • public ResultSet getIndexInfo(String catalog, String schema, String tableName, boolean unique, boolean approximate)
    • public ResultSet getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types)
    • public ResultSet getFunctions(String catalog, String schemaPattern, String functionNamePattern)
  • The getPartitionTablePrimaryKeys(String catalog, String schema, String table) method is used to obtain the primary key column of a partitioned table that contains global indexes. The following is an example:
    PgDatabaseMetaData dbmd = (PgDatabaseMetaData)conn.getMetaData();
    dbmd.getPartitionTablePrimaryKeys("catalogName", "schemaName", "tableName");