Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

SQLite 表引擎

ClickHouse Cloud 不支持此功能

该引擎支持将数据导入到 SQLite 和从 SQLite 导出数据,也支持直接从 ClickHouse 查询 SQLite 表。

创建表

    CREATE TABLE [IF NOT EXISTS] [db.]table_name
    (
        name1 [type1],
        name2 [type2], ...
    ) ENGINE = SQLite('db_path', 'table')

引擎参数

  • db_path — SQLite 数据库文件的路径。
  • table — SQLite 数据库中的表名,或原样传递给 SQLite 的查询 (请参见传递查询而非表名) 。

传递查询而非表名

table 参数不一定非得是表名,也可以是一个原样传递给 SQLite 的 SELECT 查询。表的结构将根据查询结果自动推断。该查询既可以写成子查询,也可以封装在 query 函数中:

CREATE TABLE sqlite_table ENGINE = SQLite('sqlite.db', (SELECT col1, col2 FROM table1 WHERE col2 > 1));
CREATE TABLE sqlite_table ENGINE = SQLite('sqlite.db', query('SELECT col1, col2 FROM table1 WHERE col2 > 1'));

这样的表是只读的:不允许向其中执行 INSERTsqlite 表函数也支持相同的语法。

数据类型支持

当在表定义中显式指定 ClickHouse 列类型时,可从 SQLite 的 TEXT 列中解析出以下 ClickHouse 类型:

有关默认类型映射,请参见 SQLite database engine

使用示例

显示创建 SQLite 表的查询:

SHOW CREATE TABLE sqlite_db.table2;
CREATE TABLE SQLite.table2
(
    `col1` Nullable(Int32),
    `col2` Nullable(String)
)
ENGINE = SQLite('sqlite.db','table2');

返回该表中的数据:

SELECT * FROM sqlite_db.table2 ORDER BY col1;
┌─col1─┬─col2──┐
│    1 │ text1 │
│    2 │ text2 │
│    3 │ text3 │
└──────┴───────┘

另请参见

Navigation