我正在尝试提取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
我能想到的两个不同专栏的唯一想法是:
那个定义table列在读取时可以为null,而另一个表明在此表列中可以为null.但我无法确定这个想法的正确性.
有谁知道这两列之间有什么区别?有没有关于JDBC API这一部分的更详细信息?
谢谢你的帮助.
据我所知,意思是一样的,但是IS_NULLABLE遵循information_schema.columnsSQL:2011 Schemata (ISO-9075-11:2011) 中的视图定义,尽管 SQL:2011 没有指定空字符串的含义(它只指定NO如果不是可YES为空和所有其他情况)。该柱NULLABLE使用常数的值columnNoNulls,columnNullable并且columnNullableUnknown其可以用于更可读代码,以及用于在使用switch(哪个预Java 7的不支持字符串)。它也等价于 的返回值ResultSetMetaData.isNullable(int)。
通常,元数据结果集的定义基于information_schemaISO-9075-11:2011 (SQL:2011 Schemata) 或其他版本的 SQL 标准中定义的表和视图。该规范可用于提供有关列的更多信息,但 JDBC 特定的添加除外。除了javadoc 中的内容(以及通过阅读 apidoc 和规范的其他部分中的行之间的内容)之外,通常不会明确指定这些添加内容,尽管这些添加内容通常遵循 SQL 标准的规则和逻辑。
| 归档时间: |
|
| 查看次数: |
766 次 |
| 最近记录: |