一尘不染

H2数据库,通过从CSVREAD中选择结果来插入

sql

我有一个CSV文件,例如

1,hello,13
2,world,14
3,ciao,26

我正在尝试使用CSVREAD函数将此文件读入数据库

insert into my_table( id, message, code ) values (
  select convert( "id",bigint ), "message", convert( "code", bigint)
  from CSVREAD( 'myfile.csv', 'id,message,code', null )
);

由于某种原因,我不断 SQL error stating that the column count does not match.

该表是使用Hibernate / GORM创建的,并且包含我尝试插入的字段。

选择本身似乎有效,或者至少单独执行时不会引起任何错误。 我的陈述出了什么问题?


阅读 170

收藏
2021-05-16

共1个答案

一尘不染

你用过

insert into my_table(...) values (select ...)

但您应该使用SQL铁路图中所记录的

insert into my_table(...) select ...

实际上,对于H2,如果按如下方式创建表则速度会更快一些,但我知道这并非总是可能的:

create table my_table(...) as select ...
2021-05-16