mysql - 将 Microsoft SQL Server 迁移到 MySQL:我找不到文档或修复的奇怪错误,包括“文本太长”
问题描述
我在 SQL Server 中有一个数据库,我正在尝试将其转换为 MySQL 数据库,因此我可以将它托管在 AWS 上并将所有内容移到外部。从这个链接看来,这通常没什么大不了的,尽管该链接似乎并没有从 .bak 文件迁移,而是从正在运行并包含相关数据库的本地 SQL Server 实例迁移。没什么大不了的,我可以处理。
但是,当我实际使用 MySQL Workbench 使用这些步骤进行迁移时,它会进入批量数据传输步骤,然后出现奇怪的错误。
我收到如下错误:
错误:
OptionalyticsCoreDB-Prod
。UserTokens
:插入数据:第 1 行的“令牌”列的数据太长
错误:
OptionalyticsCoreDB-Prod
。UserTokens
: 复制 6 行失败
错误:
OptionalyticsCoreDB-Prod
。UserLogs
:插入数据:第 1 行的“ActionTaken”列的数据太长错误:OptionalyticsCoreDB-Prod
。UserLogs
: 复制 244 行失败
然而,数据不应该“太长”。这些列是 SQL Server 中的 nvarchar(MAX),它们的数据在指定的行中通常很短,没有接近 nvarchar 的最大值。
像这样和这样的链接表明,大约十年前,nvarchar 格式曾经存在错误,但它们已经修复多年了。我已经检查甚至更新并重新启动了我的软件,然后是计算机——我有最新版本的 MySQL 和 MySQL Workbench。发生什么了?
这里有什么问题,如何让我的数据库成功迁移?当然可以从 SQL Server 迁移到 MySQL,对吧?
解决方案
我已经回答了我自己的问题......显然,在翻译 SQL Server nvarchar(MAX) 列时,Workbench 存在某种错误。我将架构迁移输出到脚本并检查它,它将这些列转换为 varchar(0)。将它们全部替换为 TEXT 列后,完成的迁移工作。
令人沮丧的教训。
推荐阅读
- vue.js - 在 Vue 单文件组件中访问 props 的首选方式
- sql - Apache HIVE 的计数结果不一致
- javascript - 如何检查一个数组中的值是否在一个单独的数组中具有特征,然后如果有,则在将它们各自转换为新值后返回这些值
- python - python中的熊猫;无法理解在 python-csv 库中使用 replace()
- python - 具有混合数据类型的 Numpy 数组为字符串抛出“invalid literal for int() with base 10”
- ms-word - 如何在 word Addin 中将表格行高和单元格选项设置为带有内容控件的适合文本 | Officejs
- angular - Angular5,Openlayers5 使您的弹出(覆盖)可拖动
- python - 从图像python测量物体的实际尺寸
- python - CX ORACLE - Python :: 更新语句不起作用
- python - 如何在 PyOpenGL 中更改位图字符的字体大小?