gpt4 book ai didi

mysql - H2 db插入带引号的数据抛出异常

转载 作者:行者123 更新时间:2023-11-29 15:43:43 28 4
gpt4 key购买 nike

我正在尝试用内存 h2 数据库(mysql 模式)替换普通的 msqldb 进行单元测试。请参阅表格说明

'CREATE TABLE `dummyTable` (
`id` int(11) NOT NULL,
`value1` longtext,
`value2` longtext,
PRIMARY KEY (`id`),
) ENGI

NE=InnoDB DEFAULT CHARSET=utf8'

然后我尝试插入带有 longtext 字段。在 mysql 中,我用\转义了它,插入语句工作正常,但在 h2 db 中它抛出以下异常。

插入虚拟表值 (6,'ad\'s', 'def')

org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "insert  into dummyTable values (6,'ad's','df[*]')"; SQL statement:
insert into dummyTable values (6,'ad's','df') [42000-199]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:451)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
at org.h2.message.DbException.get(DbException.java:205)
at org.h2.message.DbException.get(DbException.java:181)
at org.h2.message.DbException.getSyntaxError(DbException.java:229)
at org.h2.command.Parser.getSyntaxError(Parser.java:989)
at org.h2.command.Parser.checkRunOver(Parser.java:5129)

我尝试了另一个插入语句

插入虚拟表值 (6,"ad\'s","df")

但它也因以下异常而失败

 org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "ad's" not found; SQL statement:
insert into dummyTable values (6,"ad's","df") [42122-199]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:451

)

有人可以请教如何在 h2 db 中做到这一点吗

最佳答案

我通过加倍单引号使其工作。

例如:插入虚拟表值 (6,'ad''s', 'def')

这篇文章Inserting a long text in H2 Database from an SQL script帮助了

关于mysql - H2 db插入带引号的数据抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57305043/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com