有两列在SQLite的唯一约束更新表,而不是创建表再次

有两列在SQLite的唯一约束更新表,而不是创建表再次

问题描述:

我想在我的SQLite更新数据库中的表,在我数据表添加UNIQUE contraint两列。有两列在SQLite的唯一约束更新表,而不是创建表再次

这是我正在尝试,但抛出错误。

ALTER TABLE Data 
ADD CONSTRAINT Data UNIQUE(id, dateofday); 

以前所有的答案都在创建表这是我不想要的。任何建议?

这是不可能的。你不能在sqlite中的现有表中添加约束。您只能重命名表或将列添加到表中。

链接,供大家参考:http://www.sqlite.org/lang_altertable.html

但是您可以使用此替代方法来达到同样的。

  1. 具有相同的列当前表与你需要的所有约束创建一个临时表。

  2. 然后将旧表中的所有数据迁移到新的临时表定义的约束使用 INSERT INTO Destination SELECT * FROM Source;

  3. 检查,如果你已经从原始表到临时表复制的所有数据。

  4. 删除您的原始表并将临时表重命名为原始表的名称。

+0

喔:(。这就是为什么这个问题在这里没有存在过!我不wan't失去我的数据,但我将不得不这么做了它的意思。谢谢+1 – minigeek

+0

@minigeek尝试我刚刚更新的方法 –

+0

是的,正在做同样的事情Ho gaya kam :) – minigeek