标识符长度限制
下表描述了每种标识符的最大长度。
标识符类型 | 最大长度(字符) |
---|---|
数据库 | 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开始,此限制已删除。请参见“在NDB Cluster 8.0中解决的先前的NDB Cluster问题”。
MySQL帐户名称中的用户名和主机名之类的值是字符串而不是标识符。有关授权表中存储的此类值的最大长度的信息,请参阅“授权表范围列属性”。