簡體   English   中英

插入數組時H2數據庫中的SQL語法錯誤

[英]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[]
);
  1. 您不能在 H2 和其他數據庫中使用 PostgreSQL 樣式的text[]作為數據類型。 H2 具有ARRAY數據類型:

    https://h2database.com/html/datatypes.html#array_type

    H2 1.4.201 還將支持具有組件類型的符合標准的數組數據類型:

    componentDataType ARRAY[maximumCardinality]

    如果您現在確實需要該功能,則可以從其當前來源構建 H2,但我認為您並不真正需要它,非標准普通ARRAY也可以使用。

  2. '{"37.3","36.8","36.4"}'是字符串文字。 H2 使用標准數組字面量:

    ARRAY[element, …]

    https://h2database.com/html/grammar.html#array

    如果您使用一些過時的 H2 版本,則需要使用非標准的(element, …)文字(但不要在最新版本中使用該變體,它們將根據標准的要求將其解析為行值) .

  3. 它與您的問題無關,但您確實應該使用1而不是'1'作為整數文字,使用DATE '2019-09-11'而不是'2019-09-11'作為日期文字,以避免從字符串轉換為其他數據類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM