解决方法:使mysql列名长于64个字符

时间:2014-05-21 02:02:40

标签: mysql sql excel

我正在开发一个从Excel文件动态生成mysql表的应用程序。

当前我被卡住了,因为Excel文件中的某些列名称超过64个字符,而在mysql中,列名称的最大长度为64个字符。

我考虑过设置另一个表来存储列名,但后来我必须执行一些联合操作才能检索它们。

有没有聪明的方法可以解决这个问题?

2 个答案:

答案 0 :(得分:0)

没有其他方法可以将列大小增加到64以上。这里有一些标准。你不能超越这个限制。

Identifier                Maximum Length (characters)
Database                  64
Table                     64
Column                    64
Index                     64
Constraint                64
Stored Program            64
View                      64
Alias                     256
Compound Statement Label  16

您无法通过联接操作来检索列名。通过连接操作,您只能实现2个或更多表的数据。你的问题的解决方案是你应该在将它们导出到mysql之前截断excel中的列名。

答案 1 :(得分:0)

MySQL是一个开源项目。您可以download the source code,更改内容并构建自己的版本。

我还没有读过MySQL源代码,但标识符的最大长度是编译时常量的可能性很大。它可能就像找到常量,更改它和重新编译一样简单。 (简单并不一定意味着简单。)

在PostgreSQL中, 非常容易。 The PostgreSQL docs甚至会告诉你常量的名称,以及它所在的文件。(NAMEDATALEN,在src / include / pg_config_manual.h中)

就个人而言,我认为您最好修复Excel列名以符合MySQL限制。