我有一个应用程序必须在运行时为不同的任务加载各种H2数据库文件,并且必须能够验证加载的数据库是否符合预定义的模式。我的意思是我查询信息模式以检查是否存在特定表以及这些表是否包含正确定义的列(例如数据类型,长度,索引等)。
我的问题是H2的内部数据类型以及它们如何映射到INFORMATION_SCHEMA.COLUMNS
中列出的值。例如,我是否更正此表中的data_type列正确反映了表创建过程中给出的列数据类型,例如
CREATE TABLE test (id int primary key, some_string varchar(32) ... )
int被映射到4的数据类型?是否有数据类型映射到内部代码的列表,这些是否会发生变化?
答案 0 :(得分:1)
表格DATA_TYPE
中的列INFORMATION_SCHEMA.COLUMNS
已映射到方法DatabaseMetaData.getColumns
的第5列(DATA_TYPE
)。根据规范,这必须是一个整数,如java.sql.Types
中所定义。常数4
means INTEGER
。
这是JDBC标准的一部分,不会改变。