我在Android应用中使用SQLite数据库,我想知道如何为已创建的表添加唯一列。 通过这个我的意思是存在表uniqness由2个值确定,我想编辑表唯一性由3个值确定(2存在和1更多)。
有可能吗?
答案 0 :(得分:1)
writable_schema trick对UNIQUE不起作用,因为需要更改内部索引。
进行此更改的唯一方法是使用表的临时副本:
CREATE TABLE NewTable(
[...],
UNIQUE(Col1, Col2, Col3)
);
INSERT INTO NewTable SELECT * FROM MyTable;
DROP TABLE MyTable;
ALTER TABLE NewTable RENAME TO MyTable;
(这应该包含在一个交易中; Android的onUpdate
会自动执行此操作。)