我正在开发一个从Excel文件动态生成mysql表的应用程序。
当前我被卡住了,因为Excel文件中的某些列名称超过64个字符,而在mysql中,列名称的最大长度为64个字符。
我考虑过设置另一个表来存储列名,但后来我必须执行一些联合操作才能检索它们。
有没有聪明的方法可以解决这个问题?
答案 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限制。