19-limit.md 2.9 KB
Newer Older
1
---
G
gccgdb1234 已提交
2 3
sidebar_label: 命名与边界限制
title: 命名与边界限制
4
description: 合法字符集和命名中的限制规则
5 6
---

G
gccgdb1234 已提交
7
## 名称命名规则
8

G
gccgdb1234 已提交
9 10 11 12
1. 合法字符:英文字符、数字和下划线
2. 允许英文字符或下划线开头,不允许以数字开头
3. 不区分大小写
4. 转义后表(列)名规则:
G
gccgdb1234 已提交
13 14
   为了兼容支持更多形式的表(列)名,TDengine 引入新的转义符 "`"。可用让表名与关键词不冲突,同时不受限于上述表名称合法性约束检查
   转义后的表(列)名同样受到长度限制要求,且长度计算的时候不计算转义符。使用转义字符以后,不再对转义字符中的内容进行大小写统一
15

G
gccgdb1234 已提交
16 17
   例如:\`aBc\` 和 \`abc\` 是不同的表(列)名,但是 abc 和 aBc 是相同的表(列)名。
   需要注意的是转义字符中的内容必须是可打印字符。
18

G
gccgdb1234 已提交
19
## 密码合法字符集
20

G
gccgdb1234 已提交
21
`[a-zA-Z0-9!?$%^&*()_–+={[}]:;@~#|<,>.?/]`
22

G
gccgdb1234 已提交
23
去掉了 `` ‘“`\ `` (单双引号、撇号、反斜杠、空格)
24

G
gccgdb1234 已提交
25
## 一般限制
26

G
gccgdb1234 已提交
27
- 数据库名最大长度为 32
G
gccgdb1234 已提交
28
- 表名最大长度为 192,不包括数据库名前缀和分隔符
G
gccgdb1234 已提交
29
- 每行数据最大长度 48KB (注意:数据行内每个 BINARY/NCHAR 类型的列还会额外占用 2 个字节的存储位置)
G
gccgdb1234 已提交
30 31 32
- 列名最大长度为 64
- 最多允许 4096 列,最少需要 2 列,第一列必须是时间戳。
- 标签名最大长度为 64
G
gccgdb1234 已提交
33
- 最多允许 128 个,至少要有 1 个标签,一个表中标签值的总长度不超过 16KB
W
wade zhang 已提交
34
- SQL 语句最大长度 1048576 个字符
G
gccgdb1234 已提交
35 36
- SELECT 语句的查询结果,最多允许返回 4096 列(语句中的函数调用可能也会占用一些列空间),超限时需要显式指定较少的返回数据列,以避免语句执行报错
- 库的数目,超级表的数目、表的数目,系统不做限制,仅受系统资源限制
G
gccgdb1234 已提交
37 38 39
- 数据库的副本数只能设置为 1 或 3
- 用户名的最大长度是 23 个字节
- 用户密码的最大长度是 15 个字节
G
gccgdb1234 已提交
40
- 总数据行数取决于可用资源
G
gccgdb1234 已提交
41
- 单个数据库的虚拟结点数上限为 1024
42 43 44 45

## 表(列)名合法性说明

### TDengine 中的表(列)名命名规则如下:
G
gccgdb1234 已提交
46

47 48 49
只能由字母、数字、下划线构成,数字不能在首位,长度不能超过 192 字节,不区分大小写。这里表名称不包括数据库名的前缀和分隔符。

### 转义后表(列)名规则:
G
gccgdb1234 已提交
50

51 52 53 54 55 56 57 58 59 60
为了兼容支持更多形式的表(列)名,TDengine 引入新的转义符 "`",可以避免表名与关键词的冲突,同时不受限于上述表名合法性约束检查,转义符不计入表名的长度。
转义后的表(列)名同样受到长度限制要求,且长度计算的时候不计算转义符。使用转义字符以后,不再对转义字符中的内容进行大小写统一。

例如:
\`aBc\`\`abc\` 是不同的表(列)名,但是 abc 和 aBc 是相同的表(列)名。

:::note
转义字符中的内容必须是可打印字符。

:::