有两列在SQLite的唯一约束更新表,而不是创建表再次
问题描述:
我想在我的SQLite
更新数据库中的表,在我数据表添加UNIQUE
contraint两列。有两列在SQLite的唯一约束更新表,而不是创建表再次
这是我正在尝试,但抛出错误。
ALTER TABLE Data
ADD CONSTRAINT Data UNIQUE(id, dateofday);
以前所有的答案都在创建表这是我不想要的。任何建议?
答
这是不可能的。你不能在sqlite中的现有表中添加约束。您只能重命名表或将列添加到表中。
链接,供大家参考:http://www.sqlite.org/lang_altertable.html
但是您可以使用此替代方法来达到同样的。
具有相同的列当前表与你需要的所有约束创建一个临时表。
然后将旧表中的所有数据迁移到新的临时表定义的约束使用
INSERT INTO Destination SELECT * FROM Source;
检查,如果你已经从原始表到临时表复制的所有数据。
删除您的原始表并将临时表重命名为原始表的名称。
喔:(。这就是为什么这个问题在这里没有存在过!我不wan't失去我的数据,但我将不得不这么做了它的意思。谢谢+1 – minigeek
@minigeek尝试我刚刚更新的方法 –
是的,正在做同样的事情Ho gaya kam :) – minigeek