附加一个表或字典。
语法
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 的表中的数据。此功能由 Atomic 数据库引擎支持。
语法
ATTACH TABLE name UUID '<uuid>' (col1 Type1, ...)
附加一个先前分离的字典。
语法
ATTACH DICTIONARY [IF NOT EXISTS] [db.]name
附加一个先前分离的数据库。
语法
ATTACH DATABASE [IF NOT EXISTS] name [ENGINE=<database engine>]