Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过MYSQL工作台将SQL server迁移到MYSQL数据库时出错_Mysql_Sql Server_Mysql Workbench_Database Migration - Fatal编程技术网

通过MYSQL工作台将SQL server迁移到MYSQL数据库时出错

通过MYSQL工作台将SQL server迁移到MYSQL数据库时出错,mysql,sql-server,mysql-workbench,database-migration,Mysql,Sql Server,Mysql Workbench,Database Migration,Sql server数据库正在通过Mysql工作台迁移到Mysql。我测试了两个连接是否正常。 我循序渐进地遵循迁移向导, 我在手动编辑时收到了一些警告(与Foriegnkey相关),但我仍然继续 主要问题是在创建目标结果时:我遇到了错误 指定的密钥太长;最大密钥长度为767字节。SQL错误: 1071(我通过将VARCHAR(255)编辑为VARCHAR(191)解决了这个问题) 错误:执行“如果不存在创建表”时出错IPHR\u Mainphrecommendationengine\u规则\u

Sql server数据库正在通过Mysql工作台迁移到Mysql。我测试了两个连接是否正常。
我循序渐进地遵循迁移向导, 我在手动编辑时收到了一些警告(与Foriegnkey相关),但我仍然继续

主要问题是在创建目标结果时:我遇到了错误

指定的密钥太长;最大密钥长度为767字节。SQL错误: 1071(我通过将VARCHAR(255)编辑为VARCHAR(191)解决了这个问题)

错误:执行“如果不存在创建表”时出错
IPHR\u Main
phrecommendationengine\u规则\u过滤器\u映射
(
RuleId
BIGINT不为空,
FilterId
BIGINT不为空, 主键(
RuleId
FilterId
), 约束
FK\u短语推荐引擎\u规则\u过滤器\u映射\u短语推荐127
外键(
FilterId
) 参考
IPHR\u Main
phr推荐引擎过滤器
FilterId
) 不删除任何操作 在没有行动的情况下, 约束
FK\u phr推荐引擎\u规则\u过滤器\u映射\u phr推荐128
外键(
RuleId
) 参考
IPHR\u Main
phrecommendationengine\u规则
RuleId
) 不删除任何操作 更新时无操作)' 标识符名称“FK\U PHRRecommendationEngine\U Rule\U Filter\U Mapping\U PHRRecommendati127”太长。 SQL错误:1059

那么,有人能帮助解决上述错误吗?我知道sql server中的标识符长度是128个字符,而Mysql中是64个字符。那么,如何在不更改名称的情况下消除这些错误呢


谢谢

所以本质上你的问题是,如何在不改变文本的情况下,将128个字符转换成64个字符。嗯……是的@这是不可能的。认真思考你的问题。mysql中的限制是64个字符,您的标识符长度超过64个字符。无法将128个字符放入64个字符中。这没有任何意义。必须更改名称以满足要迁移到的新DBMS的长度限制。这里没有工作。请看您的示例外键。名称为65个字符。如果文本不改变,长度就不会减少到64。只有删除一些字符,才能将其设置为64个字符或更少。我投票将此问题视为离题,因为请求是不可能的。