将唯一列添加到已存在的sqlite表中

时间:2016-02-02 14:44:25

标签: android sqlite

我在Android应用中使用SQLite数据库,我想知道如何为已创建的表添加唯一列。 通过这个我的意思是存在表uniqness由2个值确定,我想编辑表唯一性由3个值确定(2存在和1更多)。

有可能吗?

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会自动执行此操作。)