MySQL 8.0 参考手册  / 第9章语言结构  / 9.2 模式对象名称  /  9.2.1 标识符长度限制

9.2.1 标识符长度限制

下表描述了每种标识符的最大长度。

标识符类型 最大长度(字符)
数据库 64(包括 NDB Cluster 8.0.18 及更高版本)
桌子 64(包括 NDB Cluster 8.0.18 及更高版本)
柱子 64
指数 64
约束 64
存储程序 64
看法 64
表空间 64
服务器 64
日志文件组 64
别名 256(见下表例外情况)
复合语句标签 16
用户自定义变量 64
资源组 64

CREATE VIEW根据 64 个字符的最大列长度(而不是 256 个字符的最大别名长度)检查语句中 列名的别名。

对于不包含约束名称的约束定义,服务器会在内部生成一个从关联表名称派生的名称。例如,内部生成的外键和 CHECK约束名称由表名加上_ibfk__chk_ 和一个数字组成。如果表名接近约束名称的长度限制,则约束名称所需的额外字符可能会导致该名称超过限制,从而导致错误。

标识符使用 Unicode (UTF-8) 存储。这适用于表定义中的标识符和存储在mysql数据库授权表中的标识符。授权表中标识符字符串列的大小以字符为单位。您可以使用多字节字符,而无需减少存储在这些列中的值所允许的字符数。

在 NDB 8.0.18 之前,NDB Cluster 对数据库和表的名称施加最大长度为 63 个字符。从 NDB 8.0.18 开始,此限制已被删除。请参阅 第 23.2.7.11 节,“NDB Cluster 8.0 中已解决的先前 NDB Cluster 问题”

MySQL 账户名中的用户名、主机名等值是字符串而不是标识符。有关存储在授权表中的此类值的最大长度的信息,请参阅 授权表范围列属性