Как создать многоколоночные индексы DuckDB/SQLite?

У меня есть 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...

1 ответ

Решение

Try this:

      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);")

Running the last command again will tell you the index already exists.

      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!
Другие вопросы по тегам