mysql - H2 和 MySQL 兼容性问题

标签 mysql sql testing h2 liquibase

我正在使用 H2 与 Liquibase 进行集成测试,但似乎存在兼容性问题。

一个简单的更改列函数不会在 H2 上传递,它在 MySQL 发行版上完美运行。

这里是查询:

ALTER TABLE `designs`
ALTER COLUMN `description` `description` TEXT NULL DEFAULT NULL AFTER `created`;

错误:

2014-06-07 14:27:05,708 [DEBUG] [NewPooledConnection,handleThrowable(),430] - com.mchange.v2.c3p0.impl.NewPooledConnection@78af2ac3 handling a throwable.
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "ALTER TABLE DESIGNS 
ALTER COLUMN DESCRIPTION TEXT NULL DEFAULT NULL AFTER[*] CREATED "; SQL statement:
ALTER TABLE designs ALTER COLUMN description TEXT NULL DEFAULT NULL AFTER created [42000-178]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)

一些配置:

repository.connectionString = jdbc:h2:mem:db;MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE
repository.driver = org.h2.Driver
repository.username = sa
repository.password = 

有什么解决办法吗?据我了解H2应该与Mysql兼容

最佳答案

As documented ,H2(在一定程度上)与其他数据库兼容,例如 HSQLDB、MySQL 和 PostgreSQL。但在某些领域 H2 是不兼容的。

另见 SQL syntax supported by H2 .

关于mysql - H2 和 MySQL 兼容性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24096721/

相关文章:

javascript - 自动刷新表 PHP JavaScript/jQuery

php - 使用php从MySQL中的两个连接表中删除信息

linux - 带 Shell 的 Qt 程序

spring - 如何在 Spring JUnit 测试中禁用 Autowiring ?

mysql - Django 错误 "Intersection is not supported on this database backend"

php - 考虑字段值对表行进行着色

sql - 将数据插入到sql server服务代理的队列中

sql - 左连接中的最新记录

sql - 在 Excel 中将 SQL 结果限制为 2 个小数位

python - 用于从 Matplotlib 绘图的标准 ASCII 文件格式