【问题标题】:How can I configure max length of column name in MySQL?如何在 MySQL 中配置列名的最大长度?
【发布时间】: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


【解决方案1】:

这是做不到的。为什么要让列名长度超过 64?

【讨论】:

  • 这是错误的。当然可以通过修改mysql的源码来实现。
  • @bansi 理论模糊.. 是的。在实践中..也许(虽然可能不是微不足道的)。这取决于这些数据的实际源代码布局和使用情况。
  • 我已经为这个问题添加了动机。
  • 问题是配置。重写源不是配置,所以这个答案是正确的。
猜你喜欢
  • 1970-01-01
  • 2012-09-16
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 2012-07-03
相关资源
最近更新 更多