2012-06-01 35 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中描述的事务。 –