我使用SSMA工具将数据库从MySQL移动到SQL Server。在调查时我只收到一个错误。显然,一列中的一个索引是大(超过900字节)。
M2SS0020:MySql的SQL Server迁移助手错误消息: 索引密钥大小超出(1)估计手动转换时间:1.5 hr(s)1表
所以我试图找到哪个索引是大的。它是一个看起来有点奇怪的文本专栏。但我选择了最大的条目,最大的条目是181(字节)。我用octet_length()来获取大小。
SELECT (octet_length(customer_number)) as customer_length, customer_number
FROM [table]
ORDER BY customer_length DESC;
我的问题是这只是一个警告还是一个真正的问题?我的查询是错误的获取索引的大小?我该如何解决?
编辑:
CREATE TABLE `[table]` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`customer_number` text,
`who` text,
`what` text,
`date` datetime DEFAULT NULL,
`status` text,
PRIMARY KEY (`id`),
KEY `index_1` (`customer_number`(8))
) ENGINE=MyISAM AUTO_INCREMENT=4462936 DEFAULT CHARSET=latin1;
另外,非常感谢您的帮助!
答案 0 :(得分:1)
这取决于数据类型映射。为安全起见,请手动将此列的映射定义为“NVARCHAR(200)”或其他足够大小的映射。这是一个有用的链接: