使用 Workbench 将 MS Access 迁移到 MySQL 时出现日期时间错误

Posted

技术标签:

【中文标题】使用 Workbench 将 MS Access 迁移到 MySQL 时出现日期时间错误【英文标题】:Datetime error migrating MS Access to MySQL with Workbench 【发布时间】:2019-08-26 17:09:30 【问题描述】:

我正在尝试使用 Workbench 将 MS Access 数据库迁移到 mysql Server,但 Workbench 在 SQL CREATE 脚本中生成错误,导致某些表无法创建。大多数是以下形式:

为“TransDate”指定的精度 19 太大。最大值为 6..

SQL 错误:1426

参考:

CREATE TABLE IF NOT EXISTS `dbName`.`tblName` (
    `ID` INT(10) NOT NULL,
    `TransDate` DATETIME(19) NULL,
    `ClientID` INT(10) NULL,
    ...

如您所见,它还会生成带有不推荐使用的显示宽度语法的整数类型,这也是我想避免的。

如何让 Workbench 生成避免这些问题的脚本?

编辑

我知道脚本可以在创建目标结果阶段手动编辑;但是有很多表有这些错误,我看不到任何用文本编辑器编辑它们的方法,所以我正在寻找一个解决方案,其中 Workbench 会自动生成正确的脚本。

【问题讨论】:

你试过这个dev.mysql.com/doc/workbench/en/… 吗?效果很好 【参考方案1】:

在“手动编辑”选项卡中,我找到了一个用于编辑列映射的选项,它允许您一次在脚本中更改多个相同类型的列。从下拉窗口中选择列映射,然后右键单击与要重新映射的类型对应的行。然后选择“查找和替换目标类型”并提供您要映射的类型。

【讨论】:

奇怪的是它默认为 19,这在 MySQL 中甚至不支持。文档甚至说最大精度是 6。dev.mysql.com/doc/refman/8.0/en/data-types.html

以上是关于使用 Workbench 将 MS Access 迁移到 MySQL 时出现日期时间错误的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Workbench 连接到 MS Access

如何在 Ms Access 2007 中使用 MySQL 视图,而不会出现字符串列的垃圾?

使用 Workbench 迁移向导通过 ssh 将 MS SQL Server 数据库迁移到 MySQL

将 accde 文件从 MS Access 2013 保存到 MS Access 2010

从 MS SQL-Server 迁移数据库时出现 MYSQL Workbench“不正确的字符串值”错误

将 MS Access 用作 Winform 或 WPF 的后端时如何避免损坏 MS Access