--- sidebar_label: 参数限制与保留关键字 title: TDengine 参数限制与保留关键字 --- ## 名称命名规则 1. 合法字符:英文字符、数字和下划线 2. 允许英文字符或下划线开头,不允许以数字开头 3. 不区分大小写 4. 转义后表(列)名规则: 为了兼容支持更多形式的表(列)名,TDengine 引入新的转义符 "`"。可用让表名与关键词不冲突,同时不受限于上述表名称合法性约束检查。 转义后的表(列)名同样受到长度限制要求,且长度计算的时候不计算转义符。使用转义字符以后,不再对转义字符中的内容进行大小写统一。 例如:\`aBc\` 和 \`abc\` 是不同的表(列)名,但是 abc 和 aBc 是相同的表(列)名。 需要注意的是转义字符中的内容必须是可打印字符。 支持转义符的功能从 2.3.0.1 版本开始。 ## 密码合法字符集 `[a-zA-Z0-9!?$%^&*()_–+={[}]:;@~#|<,>.?/]` 去掉了 `` ‘“`\ `` (单双引号、撇号、反斜杠、空格) - 数据库名:不能包含“.”以及特殊字符,不能超过 32 个字符 - 表名:不能包含“.”以及特殊字符,与所属数据库名一起,不能超过 192 个字节 ,每行数据最大长度 48KB - 表的列名:不能包含特殊字符,不能超过 64 个字节 - 数据库名、表名、列名,都不能以数字开头,合法的可用字符集是“英文字符、数字和下划线” - 表的列数:不能超过 1024 列,最少需要 2 列,第一列必须是时间戳(从 2.1.7.0 版本开始,改为最多支持 4096 列) - 记录的最大长度:包括时间戳 8 字节,不能超过 48KB(每个 BINARY/NCHAR 类型的列还会额外占用 2 个 字节 的存储位置) - 单条 SQL 语句默认最大字符串长度:1048576 字节,但可通过系统配置参数 maxSQLLength 修改,取值范围 65480 ~ 1048576 字节 - 数据库副本数:不能超过 3 - 用户名:不能超过 23 个 字节 - 用户密码:不能超过 15 个 字节 - 标签(Tags)数量:不能超过 128 个,可以 0 个 - 标签的总长度:不能超过 16KB - 记录条数:仅受存储空间限制 - 表的个数:仅受节点个数限制 - 库的个数:仅受节点个数限制 - 单个库上虚拟节点个数:不能超过 64 个 - 库的数目,超级表的数目、表的数目,系统不做限制,仅受系统资源限制 - SELECT 语句的查询结果,最多允许返回 1024 列(语句中的函数调用可能也会占用一些列空间),超限时需要显式指定较少的返回数据列,以避免语句执行报错。(从 2.1.7.0 版本开始,改为最多允许 4096 列) ## 保留关键字 目前 TDengine 有将近 200 个内部保留关键字,这些关键字无论大小写均不可以用作库名、表名、STable 名、数据列名及标签列名等。这些关键字列表如下: | 关键字列表 | | | | | | ----------- | ---------- | --------- | ---------- | ------------ | | ABORT | CREATE | IGNORE | NULL | STAR | | ACCOUNT | CTIME | IMMEDIATE | OF | STATE | | ACCOUNTS | DATABASE | IMPORT | OFFSET | STATEMENT | | ADD | DATABASES | IN | OR | STATE_WINDOW | | AFTER | DAYS | INITIALLY | ORDER | STORAGE | | ALL | DBS | INSERT | PARTITIONS | STREAM | | ALTER | DEFERRED | INSTEAD | PASS | STREAMS | | AND | DELIMITERS | INT | PLUS | STRING | | AS | DESC | INTEGER | PPS | SYNCDB | | ASC | DESCRIBE | INTERVAL | PRECISION | TABLE | | ATTACH | DETACH | INTO | PREV | TABLES | | BEFORE | DISTINCT | IS | PRIVILEGE | TAG | | BEGIN | DIVIDE | ISNULL | QTIME | TAGS | | BETWEEN | DNODE | JOIN | QUERIES | TBNAME | | BIGINT | DNODES | KEEP | QUERY | TIMES | | BINARY | DOT | KEY | QUORUM | TIMESTAMP | | BITAND | DOUBLE | KILL | RAISE | TINYINT | | BITNOT | DROP | LE | REM | TOPIC | | BITOR | EACH | LIKE | REPLACE | TOPICS | | BLOCKS | END | LIMIT | REPLICA | TRIGGER | | BOOL | EQ | LINEAR | RESET | TSERIES | | BY | EXISTS | LOCAL | RESTRICT | UMINUS | | CACHE | EXPLAIN | LP | ROW | UNION | | CACHELAST | FAIL | LSHIFT | RP | UNSIGNED | | CASCADE | FILE | LT | RSHIFT | UPDATE | | CHANGE | FILL | MATCH | SCORES | UPLUS | | CLUSTER | FLOAT | MAXROWS | SELECT | USE | | COLON | FOR | MINROWS | SEMI | USER | | COLUMN | FROM | MINUS | SESSION | USERS | | COMMA | FSYNC | MNODES | SET | USING | | COMP | GE | MODIFY | SHOW | VALUES | | COMPACT | GLOB | MODULES | SLASH | VARIABLE | | CONCAT | GRANTS | NCHAR | SLIDING | VARIABLES | | CONFLICT | GROUP | NE | SLIMIT | VGROUPS | | CONNECTION | GT | NONE | SMALLINT | VIEW | | CONNECTIONS | HAVING | NOT | SOFFSET | VNODES | | CONNS | ID | NOTNULL | STABLE | WAL | | COPY | IF | NOW | STABLES | WHERE | | _C0 | _QSTART | _QSTOP | _QDURATION | _WSTART | | _WSTOP | _WDURATION | _ROWTS | ## 特殊说明 ### TBNAME `TBNAME` 可以视为超级表中一个特殊的标签,代表子表的表名。 获取一个超级表所有的子表名及相关的标签信息: ```mysql SELECT TBNAME, location FROM meters; 统计超级表下辖子表数量: ```mysql SELECT COUNT(TBNAME) FROM meters; ``` 以上两个查询均只支持在WHERE条件子句中添加针对标签(TAGS)的过滤条件。例如: ```mysql taos> SELECT TBNAME, location FROM meters; tbname | location | ================================================================== d1004 | California.SanFrancisco | d1003 | California.SanFrancisco | d1002 | California.LosAngeles | d1001 | California.LosAngeles | Query OK, 4 row(s) in set (0.000881s) taos> SELECT COUNT(tbname) FROM meters WHERE groupId > 2; count(tbname) | ======================== 2 | Query OK, 1 row(s) in set (0.001091s) ``` ### _QSTART/_QSTOP/_QDURATION 表示查询过滤窗口的起始,结束以及持续时间。 ### _WSTART/_WSTOP/_WDURATION 窗口切分聚合查询(例如 interval/session window/state window)中表示每个切分窗口的起始,结束以及持续时间。 ### _c0/_ROWTS _c0 _ROWTS 等价,表示表或超级表的第一列