我正在尝试用内存h2数据库(mysql模式)替换我的普通msqldb以进行单元测试。请参阅表格说明
getfiltereddata(data) {
var url = `/user?filtereddata=true`;
data.forEach(element => {
url = url + `&` + element.key + `=` + element.value;
}); //of course i have to check if valuie is not ''
然后,我尝试在其中插入‘的 longtext 字段。在 mysql 中,我使用\对其进行了转义,并且insert语句运行良好,但是在 h2 db 中,它的抛出是在异常之后。
插入哑表值(6,'ad \'s','def')
'CREATE TABLE `dummyTable` (
`id` int(11) NOT NULL,
`value1` longtext,
`value2` longtext,
PRIMARY KEY (`id`),
) ENGI
NE=InnoDB DEFAULT CHARSET=utf8'
我尝试了另一个插入语句
插入哑表值(6,“ ad \'s”,“ df”)
但是它也失败了,但出现以下异常
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)
请问有人可以在h2 db中怎么做
答案 0 :(得分:0)
我通过将单引号加倍来使其工作。
例如: 插入dummyTable值(6,'ad's','def')
此帖子Inserting a long text in H2 Database from an SQL script的帮助