【发布时间】:2013-11-27 06:20:41
【问题描述】:
MySQL 中列名的最大长度为 64(可以查看documentation)。 我的问题是如何改变它。 更具体地说,我想增加它。 可以做到吗?如果是,应该怎么做?
编辑:关于动机的几句话: 这些表是在输入字符串时自动创建的,不需要可读,因为它们正在被软件使用。 另一种方法是给出一些“id”作为列名,而不是输入字符串连接。但是增加列名长度可以在不更改任何代码的情况下解决它。
谢谢,
里尔
【问题讨论】:
-
您有 2 个选项。让 MySQL 开发者来做,或者你可以下载代码并根据你的要求进行修改。
-
64 个字符 really 对于大多数 [sane] 列名限制应该足够了。如果长度限制在代码库(包括二进制模式格式)中是固定的,并且即使通过源代码访问也不会被轻易改变,我不会感到惊讶。
-
如果列名无关紧要(我不知道您将如何读回数据),您可以使用
base64编码的 SHA1 哈希来创建字段名称。 SHA1 哈希只有 160 位。如果您认为会有冲突,您甚至可以使用只有 256 位的 SHA256。无论如何,您需要代码编辑。如果您要编辑 MySQL 代码,这并不容易,并且您无法在任何其他 MySQL 安装中运行您的应用程序。 -
如果您认为您绝对需要超过 64 的列名长度。这是一个技巧(但在生产服务器中不要尝试此操作)。只需更改表格
information_schema.COLUMNS并将COLUMN_NAME列从VARCHAR(64)更改为您舒适的大小。不能保证这可能有效。小心你可能会弄乱你的 MySQL 安装。
标签: mysql maxlength columnname