在阅读文档时,我发现TTL功能对我来说非常有用。但是,我无法构造有效的SQL来使用它。
我该怎么做:
CREATE TABLE t1 (
name String,
date DateTime default now(),
number UInt64 default 0 TTL date + INTERVAL 1 DAY
) Engine MergeTree() ORDER BY name;
出现以下错误:
Syntax error: failed at position 92 (line 4, col 27):
...[copy of my code here]
Expected one of: NOT, LIKE, AND, OR, IN, BETWEEN, COMMENT, CODEC, token, IS, NOT LIKE, NOT IN, GLOBAL IN, GLOBAL NOT IN, ClosingRoundBracket, Comma, QuestionMark
我还尝试使用表范围的TTL:
CREATE TABLE t1 (
name String,
date DateTime default now(),
number UInt64 default 0
) Engine MergeTree() ORDER BY name TTL date + INTERVAL 1 DAY;
这也会导致错误。
据我所知,我正在根据文档(https://clickhouse.yandex/docs/en/operations/table_engines/mergetree/#table_engine-mergetree-creating-a-table)做所有事情,但是我仍然无法使用此功能。
我正在使用服务器版本19.5.3修订版54417。
请提供有关如何使用TTL功能的任何示例或想法!
答案 0 :(得分:3)
表和列的TTL已发布但尚未发布,将在19.6.x中提供。文档反映了“主要”技术水平,而不是最新版本。这无疑是令人困惑的。为了查看特定版本,您可以参考特定主要版本的文档,例如:https://clickhouse.yandex/docs/v19.5/en/operations/table_engines/mergetree/