gpt4 book ai didi

java - JDBC getColumns "IS_NULLABLE"和 "NULLABLE"之间的差异

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:20 24 4
gpt4 key购买 nike

我正在尝试提取 JDBC 数据库驱动程序的数据库元数据。

现在我面临着文档的一部分,我无法向自己解释:

方法 DatabaseMetaData.getColumns(...); ( JavaDoc ) 声明了两个不同的“可空性”列:

NULLABLE int => is NULL allowed.    columnNoNulls - might not allow NULL values    columnNullable - definitely allows NULL values    columnNullableUnknown - nullability unknown 

 IS_NULLABLE String => ISO rules are used to determine the nullability for a column.    YES --- if the column can include NULLs    NO --- if the column cannot include NULLs    empty string --- if the nullability for the column is unknown

对于这两个不同的列,我能想到的唯一想法是:

一个定义表列在读取时可以为空,另一个声明可以将空列插入到该表中。但我无法确定这个想法的正确性。

有谁确切知道这两列之间的区别是什么?有没有关于这部分 JDBC API 的更详细的信息?

感谢您的帮助。

最佳答案

据我所知,含义是相同的,但是 IS_NULLABLE 遵循 SQL:2011 Schemata (ISO-9075-11: 2011),尽管 SQL:2011 没有指定空字符串的含义(它只指定 NO 如果不可为 nullable 和 YES 用于所有其他情况)。 NULLABLE 列使用常量 columnNoNullscolumnNullablecolumnNullableUnknown 的值,这些值可用于更易读的代码,并用于 switch(Java 7 之前的版本不支持字符串)。也相当于ResultSetMetaData.isNullable(int)的返回值.

一般来说,元数据结果集的定义基于 ISO-9075-11:2011 (SQL:2011 Schemata) 或其他版本的 SQL 标准中定义的 information_schema 表和 View 。此规范可用于提供有关列的更多信息,但 JDBC 特定添加除外。这些添加通常明确指定,除了 javadoc 中的内容(以及通过阅读 apidoc 和规范的其他部分中的行之间),尽管这些添加通常遵循 SQL 的规则和逻辑标准。

关于java - JDBC getColumns "IS_NULLABLE"和 "NULLABLE"之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26490427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com