MySQL 8.4 Release Notes
11.2.1 标识符长度限制
以下表格描述了每种标识符类型的最大长度。
| Identifier Type | Maximum Length (characters) |
|---|---|
| 数据库 | 64 |
| 表 | 64 |
| 列 | 64 |
| 索引 | 64 |
| 约束 | 64 |
| 存储程序 | 64 |
| 视图 | 64 |
| 表空间 | 64 |
| 服务器 | 64 |
| 日志文件组 | 64 |
| 别名 | 256(见以下表格中的例外) |
| 复合语句标签 | 16 |
| 用户定义变量 | 64 |
| 资源组 | 64 |
在CREATE VIEW语句中,列别名将被检查,以确保其长度不超过64个字符(而不是256个字符的别名长度限制)。
对于包含无约束名称的约束定义,服务器将内部生成一个由关联表名派生的名称。例如,内部生成的外键和CHECK约束名称由表名加上_ibfk_或_chk_和一个数字组成。如果表名接近约束名称长度限制,所需的额外字符可能会导致该名称超出限制,从而引发错误。
标识符使用 Unicode(UTF-8)存储。这适用于表定义中的标识符和在 mysql 数据库中的授权表中存储的标识符。授权表中的标识符字符串列大小以字符为单位。你可以在这些列中存储多字节字符,而不需要减少允许的值长度。
MySQL 账户名称中的用户名和主机名等值是字符串,而不是标识符。关于授权表中存储这些值的最大长度,请参见授权表范围列属性。