You need to enable JavaScript to run this app.
导航
ATTACH语句 (ATTACH)
最近更新时间:2024.11.06 13:58:49首次发布时间:2024.11.01 11:00:45

附加一个表或字典。
语法

ATTACH TABLE|DICTIONARY|DATABASE [IF NOT EXISTS] [db.]name

该查询不会在存储上创建数据,而是假设数据已经在适当的位置,只是将指定表、字典或数据库的信息添加到服务器中。执行 ATTACH 查询后,服务器将知道表、字典或数据库的存在。
如果表之前已被分离(DETACH 查询),意味着其结构已知,则可以使用简写形式而不定义结构。

附加现有表

语法

ATTACH TABLE [IF NOT EXISTS] [db.]name 

此查询用于启动服务器时。服务器将表的元数据存储为包含 ATTACH 查询的文件,并在启动时运行这些查询(某些系统表除外,这些系统表会在服务器上显式创建)。
如果表被永久分离,它不会在服务器启动时重新附加,因此需要显式使用 ATTACH 查询。

创建新表并附加数据

使用指定的表数据路径

该查询使用提供的结构创建一个新表,并从 user_files 中提供的目录附加表数据。
语法

ATTACH TABLE name FROM 'path/to/data/' (col1 Type1, ...)

示例

DROP TABLE IF EXISTS test;
INSERT INTO TABLE FUNCTION file('01188_attach/test/data.TSV', 'TSV', 's String, n UInt8') VALUES ('test', 42);
ATTACH TABLE test FROM '01188_attach/test' (s String, n UInt8) ENGINE = File(TSV);
SELECT * FROM test;

┌─s────┬──n─┐
│ test │ 42 │
└──────┴────┘

使用指定的表 UUID

该查询使用提供的结构创建一个新表,并附加具有指定 UUID 的表中的数据。此功能由 Atomic 数据库引擎支持。
语法

ATTACH TABLE name UUID '<uuid>' (col1 Type1, ...)

附加现有字典

附加一个先前分离的字典。
语法

ATTACH DICTIONARY [IF NOT EXISTS] [db.]name 

附件现有数据库

附加一个先前分离的数据库。
语法

ATTACH DATABASE [IF NOT EXISTS] name [ENGINE=<database engine>]