我有HSQLDB的问题,我有一个MySql数据库,我将内容转储到内存HSQLDB中,当我运行脚本时出现以下错误:Error: unexpected token: (
在创建表脚本上并且违规行为TINYINT(3)
如果我删除括号和数字它工作正常,这是一个有效的MYSQL声明,我尝试通过将我的网址更改为:jdbc:hsqldb:mem:dataSource;sql.syntax_mys=true
来改变MYSQL,但这仍然无法正常工作。 :(
就像我使用Spring hibernate连接并使用Liquibase从MySQL转储到HSQLDB以及我正在运行HSQLDB v2.3.2
的附加信息一样答案 0 :(得分:2)
SQL语法尤其是DDL在不同数据库之间的移植性不是很好。您将不得不在HSQLDB中学习create table的正确语法,这与MySQL有些不同。
您不能只从一种数据库导出表定义并导入到另一种数据库中。 如果情况确实如此,那么SQL Standard会非常松散......
答案 1 :(得分:0)
我假设您有一个DDL脚本,您可以在其顶部添加SET DATABASE SQL SYNTAX MYS TRUE;
,另请参阅here(表13.29.MySQL风格语法)。
您可以将此仅用于测试;如果要完全迁移到HSQLDB,更改脚本本身就是长期解决方案。