H2 数据库 - MySQL 脚本的未知数据类型

Posted

技术标签:

【中文标题】H2 数据库 - MySQL 脚本的未知数据类型【英文标题】:H2 Database - Unknown data type of MySQL script 【发布时间】:2016-03-02 22:42:02 【问题描述】:

我是使用内存数据库的新手。

我尝试使用 H2 数据库 来开发带有 spring boot、spring data JPA 的项目,但是在初始化应用程序时遇到了问题。

原因:org.h2.jdbc.JdbcSQLException:未知数据类型:“FK_PERSON__PERSONTYPE_IDX”; SQL语句:

因为这个脚本是从 mysql 导出的。所以我认为有一些H2不理解的错误语法

例如,这是脚本的一部分:

CREATE TABLE `person` ( `id` int(11) NOT NULL AUTO_INCREMENT, `firstname` varchar(255) NOT NULL, `lastname` varchar(255) DEFAULT NULL, `type` int(11) NOT NULL, `address` text, PRIMARY KEY (`id`), KEY `fk_person__persontype_idx` (`type`), CONSTRAINT `fk_person__persontype` FOREIGN KEY (`type`) REFERENCES `persontype` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' ';

我尝试了一些解决方案:

Convert MySQL script to H2

http://matthewcasperson.blogspot.de/2013/07/exporting-from-mysql-to-h2.html

用双引号,单引号,...替换符号,甚至根本不使用引号但不起作用。 请告诉我为什么? 谢谢。

【问题讨论】:

SQL commands not compliable by H2的可能重复 谢谢,让我检查一下。 感谢 win_wave 的推荐,但没有成功。当我从 mysql 脚本迁移到 H2 脚本时仍然有很多错误。最好使用mysql DB 【参考方案1】:

我也有类似的问题。

删除“KEY”行,在您的示例中对应于:

KEY `fk_person__persontype_idx` (`type`),

为我工作。

【讨论】:

以上是关于H2 数据库 - MySQL 脚本的未知数据类型的主要内容,如果未能解决你的问题,请参考以下文章

org.h2.jdbc.JdbcSQLException:未知数据类型:“DATEADD”; SQL 语句

使用H2数据库在游戏中运行测试时,未知数据类型为“JSONB”

在关系数据库中链接未知表的外键

H2 - Postgres 模式支持网络数据类型

在 h2 数据库 sql 脚本中不起作用

带有 h2 嵌入式数据库的 MySQL LONGTEXT