【发布时间】:2010-06-30 05:02:49
【问题描述】:
我正在将应用程序的数据库层从 MSSQL 迁移到 MySQL,当我尝试将 MSSQL 表迁移到 MySQL 时遇到了这个异常:
Row size too large. The maximum row size for the used table type
,not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs)
原来 MSSQL 表有很多 nvarchar 列,其有效行大小远大于 65535。我能想到的解决这个问题的唯一方法是更改我的应用程序设计,将大表拆分为较小的表,然后重新设计不是我期待的事情。
有没有办法在不重新设计应用程序的情况下克服这个问题?
提前致谢。
巴拉特·K。
【问题讨论】:
-
“您必须将某些列更改为 TEXT 或 BLOB”怎么样?
-
这也不是很讨人喜欢。正在寻找一种不涉及框架重新设计的机制。
-
您实际上不需要重新设计任何东西来使用 TEXT 或 BLOB。您能否针对导致您出现问题的表格发布示例
CREATE TABLE? -
这是对已存在表的更改查询导致此问题。感谢@Dean、@Simon 的建议。由于查询是由我们的建模框架生成的,因此希望避免这种变化。但这似乎是最好的选择。
-
你能改变 SQL Server 表上的列吗? NVARCHAR 通常为 Unicode 保留,每个字符占用 2 个字节,而不是 VARCHAR 中的典型 1
标签: mysql sql-server