我正在开发模式下使用内存数据库中的 H2,但我希望它的行为尽可能像 mysql 数据库(请参阅http://www.h2database.com/html/features.html#compatibility)
这是我在 application.conf 文件中的配置:
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play;MODE=MYSQL;DB_CLOSE_DELAY=-1"
为了测试它,我只运行“play”并从 play 的控制台发出“h2-browser”并在 url jdbc 字段中输入“jdbc:h2:mem:play;MODE=MYSQL;DB_CLOSE_DELAY=-1”
以下语句在 mysql 中可以正常工作:
CREATE TABLE `tmp` (
`name` varchar(50) NOT NULL
);
insert into tmp (name) values ('slash: \\, simple quotes \', double quotes \" -');
select * from tmp;
但是在 h2 控制台中我得到一个错误,我唯一可以转义的字符是单引号,只需在它前面加上另一个单引号。(也尝试输入'SET MODE MySQL;')
有没有办法让 h2 从 play 的框架 h2-browser 中表现得像 mysql?还是只是h2的限制?