我使用一個sqlite3的數據庫,我有一個表,看起來像這樣:sqlite3的裂棗在創建索引
數據庫是相當大,運行查詢是很慢的。我試圖通過索引一些列來加速這個過程。我想索引的一列是QUOTE_DATETIME
列。
問題:我想指數按日期(YYYY-MM-DD)只,而不是按日期和時間(YYYY-MM-DD HH:MM:SS),這是我目前在QUOTE_DATETIME
數據。如何使用CREATE INDEX
創建僅使用格式爲YYYY-MM-DD的日期的索引?我應該將QUOTE_DATETIME
分成2列:QUOTE_DATE
和QUOTE_TIME
?如果是這樣,我該怎麼做?有更簡單的解決方案嗎?
感謝您的幫助! :D
嘗試1:我試過CREATE INDEX id ON DATA (date(QUOTE_DATETIME))
但我得到了錯誤Error: non-deterministic functions prohibited in index expressions
。
嘗試2:我跑ALTER TABLE data ADD COLUMN QUOTE_DATE TEXT
來創建一個只保存日期的新列。然後INSERT INTO data(QUOTE_DATE) SELECT date(QUOTE_DATETIME) FROM data
。 date(QUOTE_DATETIME)
應該將日期+時間轉換爲日期,而INSERT INTO
應將新值添加到QUOTE_DATE
。但是,它不起作用,我不知道爲什麼。新列最終沒有添加任何內容。
1.感謝您的解釋。無論如何,這可能不是一個好的解決方案。 2.對我而言,謝謝你解釋爲什麼INSERT不起作用! –