HSQLDB批量插入报错求助:LibreOffice中INSERT语句格式问题
HSQLDB 批量插入数据的正确格式(LibreOffice环境)
LibreOffice集成的HSQLDB版本通常为1.8.x,不支持SQL:2003标准的逗号分隔多组VALUES的批量插入语法,这就是你报错的原因。以下两种格式可以正常执行:
方法一:多条独立INSERT语句
适合少量数据插入,每条语句对应一组数据:
INSERT INTO "SERVICES TABLE" ("NUMBER", "FAULT DESCRIPTION") VALUES (32323, 'ASDF'); INSERT INTO "SERVICES TABLE" ("NUMBER", "FAULT DESCRIPTION") VALUES (3234, 'DASFF');
方法二:UNION ALL拼接SELECT语句
适合大量数据批量插入,通过UNION ALL组合多个查询结果:
INSERT INTO "SERVICES TABLE" ("NUMBER", "FAULT DESCRIPTION") SELECT 32323, 'ASDF' FROM DUAL UNION ALL SELECT 3234, 'DASFF' FROM DUAL;
注:HSQLDB 1.8.x版本必须加上
FROM DUAL,如果是2.0及以上版本可省略该部分。
若你手动升级了LibreOffice中的HSQLDB至2.0+版本,你最初使用的逗号分隔VALUES的语法是可以正常运行的。
内容的提问来源于stack exchange,提问作者Manuel Angel Gallardo
相关产品推荐
相关产品推荐

