Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将唯一列添加到已存在的sqlite表中_Android_Sqlite - Fatal编程技术网

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

Android 将唯一列添加到已存在的sqlite表中,android,sqlite,Android,Sqlite,我在Android应用程序中使用SQLite数据库,我想知道如何向已经创建的表中添加唯一的列。 我的意思是,exist表的唯一性由2个值决定,我想编辑表的唯一性,由3个值决定,2个exist和1个以上 可能吗?由于需要更改内部索引,因此不适用于UNIQUE 进行此更改的唯一方法是使用表的临时副本: CREATE TABLE NewTable( [...], UNIQUE(Col1, Col2, Col3) ); INSERT INTO NewTable SELECT * FROM

我在Android应用程序中使用SQLite数据库,我想知道如何向已经创建的表中添加唯一的列。 我的意思是,exist表的唯一性由2个值决定,我想编辑表的唯一性,由3个值决定,2个exist和1个以上

可能吗?

由于需要更改内部索引,因此不适用于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会自动完成这项工作