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

9.2.1 标识符长度限制

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

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

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

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

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

NDB Cluster 为数据库和表的名称规定最大长度为 63 个字符。请参阅 第 21.2.7.5 节,“与 NDB Cluster 中的数据库对象相关的限制”

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