2012-06-01 66 views
0

對於具有脫機存儲的項目,我創建了一個數據庫,其中包含ID的主鍵以及保存日期的唯一字段。刪除條目並從唯一鍵索引中釋放

當我刪除的條目,我不能創建一個新的與刪除的條目有相同的日期。

我能做些什麼來獲得日期列的索引,當我刪除該條目?

這是我如何創建表:

CREATE TABLE IF NOT EXISTS userdata (id INTEGER PRIMARY KEY ASC, entrydate DATE UNIQUE, strength, comments 

我不知道如果我需要添加的東西告訴DB服務器,讓我再儘快它是免費的再次使用相同的值。也許我需要運行某種更新,SQLite更新其內部記錄。

回答

0

我覺得這裏有幾種可能性。

  1. 您的刪除語句在uncommitted transaction。所以在你嘗試插入之前,這個唯一值並沒有從表格中刪除。

  2. 要刪除的價值和您要插入的新的價值實際上不是相同的值。運行一個選擇並確保您嘗試插入的值實際上可用。

  3. 你有一個損壞的索引,需要reindex it

+0

是我使用的交易。這可能是原因。你知道我該如何進行交易嗎? –

+0

看看這裏:http://grox.net/doc/sqlite/lang_transaction.html我也用linq更新了答案。密切關注成功提交的要求。 – RThomas

+0

我試過了,但它似乎不適用於HTML5環境。我使用了[http://www.html5rocks.com/en/tutorials/webdatabase/todo/](http://www.html5rocks.com/en/tutorials/webdatabase/todo/)上STEP 5中描述的事務。 –