0

我有一个 DuckDB,其中包含我想使用多列查询的数据列。我在 R 中,但我不确定如何创建多列索引(甚至是单列索引)。任何人都可以建议参考吗?我已将 SQLite 添加为标签,因为我认为这些命令可能是相同的。

编辑: 根据 kukuk1de 的建议,我正在尝试以下

require(DBI)
require(duckdb)

DBI::dbExecute(con,statement = "CREATE INDEX multi_idx ON  (percent prevalence fresh_flow maskProp dropExhale)")

但我收到以下错误:

Error in .local(conn, statement, ...) : 
  duckdb_prepare_R: Failed to prepare query CREATE INDEX multi_idx ON  (percent prevalence fresh_flow maskProp dropExhale)
Error: Parser Error: syntax error at or near "("
LINE 1: CREATE INDEX multi_idx ON  (percent prevalence fresh_flow maskProp...
4

1 回答 1

2

尝试这个:

library("DBI")

con = dbConnect(duckdb::duckdb(), dbdir=":memory:", read_only=FALSE)

dbExecute(con, "CREATE TABLE items(item VARCHAR, value DECIMAL(10,2), count INTEGER)")
dbExecute(con, "INSERT INTO items VALUES ('jeans', 20.0, 1), ('hammer', 42.2, 2)")

dbExecute(con, "CREATE INDEX itemcount_idx ON items (item, count);")

再次运行最后一个命令将告诉您索引已经存在。

dbExecute(con, "CREATE INDEX itemcount_idx ON items (item, count);")
Error in duckdb_execute(res) : duckdb_execute_R: Failed to run query
Error: Catalog Error: Index with name "itemcount_idx" already exists!
于 2021-02-26T10:18:17.927 回答