我实际上正在尝试将数据插入H2数据库中。启动应用程序服务器时,正在获取SQL语法错误异常。我真的不确定H2数据库是否支持在列中插入数组?下面的sql语句有什么问题吗? H2数据库是否支持任何数组数据类型float [],String [] ...?
INSERT INTO weather (id,date,temperature) values ('1','2019-09-11','{"37.3","36.8","36.4"}');
CREATE TABLE WEATHER(
id INT AUTO_INCREMENT PRIMARY KEY,
date DATE,
temperature text[]
);
答案 0 :(得分:0)
在H2和其他数据库中,不能将PostgreSQL风格的text[]
用作数据类型。 H2具有数组的ARRAY
数据类型:
https://h2database.com/html/datatypes.html#array_type
H2 1.4.201也将支持具有组件类型的符合标准的数组数据类型:
componentDataType ARRAY[maximumCardinality]
如果您现在确实需要H2,可以从其当前资源构建H2,但我认为您真的不需要它,非标准普通ARRAY
也可以使用。
'{"37.3","36.8","36.4"}'
是字符串文字。 H2使用标准数组文字:
ARRAY[element, …]
https://h2database.com/html/grammar.html#array
如果您使用的是H2的某些过时版本,则需要改用非标准的(element, …)
文字(但不要在最新版本中使用该变体,否则它将根据需要解析为行值)标准)。
这与您的问题无关,但您确实应该使用1
代替'1'
作为整数文字,并使用DATE '2019-09-11'
代替'2019-09-11'
作为日期文字以避免从字符串转换为其他数据类型。