我正试图将数据从mysql工作台导入h2,但出现了这个错误。
CREATE TABLE `jobs` (
`id` int NOT NULL AUTO_INCREMENT,
`engjob` varchar(45) NOT NULL,
`itajob` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=116 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci [42001-200] 42001/42001
我不知道为什么。
我还想问一下h2是否是合适的数据库。我正在尝试使用java和嵌入式数据库创建一个windows应用程序。
最初我用 mySql workbench
(我错了)。我正在尝试将所有数据移动到 H2
因为我被告知这样做可能更容易,但如果你想提出一些不同的建议,那么我可以制作一个带有嵌入式数据库的应用程序,这也会很有帮助。
谢谢您。
1条答案
按热度按时间wsxa1bj11#
h2和其他符合标准的dbms期望
但您正在尝试执行非标准mysql样式的sql。
实际上,当前h2接受mysql兼容模式下的非标准定义,但是您需要从其当前源代码(github上提供,这里有构建说明)编译h2并启用此兼容模式;这些改进还没有发布。
或者,您可以简单地删除括号后的所有额外子句并使用h2 1.4.200,但您可能也需要它的mysql兼容模式:https://h2database.com/html/features.html#compatibility
在这种情况下,不要忘记用一个附加命令重新启动序列:
如果您对sql中的异常有更多问题,请包括错误消息和堆栈跟踪。在这个问题中,我只看到错误代码(42001-200),对于更复杂的情况,可能需要额外的信息。
目前有三种著名的纯java嵌入式dbms,它们都不能作为mysql的直接替代。