下表描述了每种标识符的最大长度。
标识符类型 | 最大长度(字符) |
---|---|
数据库 | 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 账户名中的用户名、主机名等值是字符串而不是标识符。有关存储在授权表中的此类值的最大长度的信息,请参阅 授权表范围列属性。