我想从 CSV 文件创建一个新的嵌入式 h2 数据库。这是csv文件的片段
国家、城市、口音城市、地区、人口、纬度、经度
广告,aixovall,Aixovall,06,,42.4666667,1.4833333
ad,andorra,Andorra,07,,42.5,1.5166667
广告,安道尔城,安道尔城,07,20430,42.5,1.5166667
ad,andorra-vieille,Andorra-Vieille,07,,42.5,1.5166667
ad,andorre,Andorre,07,,42.5,1.5166667
我不想检索 csv 文件的所有字段。实际上,我想要它们,除了City和Region字段。
此外,我想仅当POPULATION的内容不为空时才将 csv 文件的内容插入数据库。
因此,在上面的 csv 示例中,我们必须只将第 3 行插入到 h2 表 WORLDCITIES 中,因为它的“人口”字段已被指示。
这是我写的一段代码。但是,如您所见,这还不够:
conn = DriverManager.getConnection(connectionURL, connectionProps);
Statement stmt = conn.createStatement();
stmt.execute("CREATE TABLE WORLDCITIES"
+ " AS SELECT COUNTRY, ACCENTCITY, POPULATION, LATITUDE, LONGITUDE"
+ " FROM CSVREAD('snippet.csv'));
如果我理解正确,CSVREAD 使用 VARCHAR 类型创建字段,但我想要这样的东西:
COUNTRY VARCHAR(3)、ACCENTCITY VARCHAR(40)、人口浮点数、纬度浮点数、经度浮点数
提前感谢您的帮助。