![](/img/trans.png)
[英]H2 database complaints about sql syntax error with a valid mysql query
[英]SQL syntax error in H2 Database when inserting array
我实际上是在尝试将数据插入到 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[]
);
您不能在 H2 和其他数据库中使用 PostgreSQL 样式的text[]
作为数据类型。 H2 具有ARRAY
数据类型:
https://h2database.com/html/datatypes.html#array_type
H2 1.4.201 还将支持具有组件类型的符合标准的数组数据类型:
componentDataType ARRAY[maximumCardinality]
如果您现在确实需要该功能,则可以从其当前来源构建 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'
作为日期文字,以避免从字符串转换为其他数据类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.