2012-10-17 43 views
0

我在Android应用程序中使用sqlite,我想通过2个唯一的行值插入表中。例如:插入或替换2个唯一值

id| column1 | column2 | column3| 
1. 1    2  3 
2. 2    3  4 

唯一列 - COLUMN1和COLUMN2

INSERT OR REPLACE INTO HISTORY (id, column1, column2, column3) VALUES (null, 2, 3, 6); 

但此查询不应该的作品“事业第一,二值未在表

日Thnx独特。

回答

0

如果我明白你的问题,只需使用UNIQUE constraint构建表时:

CREATE TABLE History (
    _id INTEGER PRIMARY KEY, 
    column1 INTEGER, 
    column2 INTEGER, 
    column3 INTEGER, 
    UNIQUE (column1, column2)); 

然后,如果你尝试这些INSERT声明:

INSERT INTO History (column1, column2, column3) VALUES (2, 3, 0); 
INSERT INTO History (column1, column2, column3) VALUES (2, 3, 6); 

第二个将失败,因为column1column2已经存在。

了解如果您在我的示例中使用INSERT OR REPLACE,则第二条语句会替换第一条语句(不会抛出异常)。


,但我怎么可以添加独特的存在表?

通常你会使用ALTER TABLE来约束添加到现有表,但SQLite的不允许这样......不过,你可以解决此限制:

CREATE UNIQUE INDEX name ON History(column1, column2); 
+0

谢谢,我会尝试,但我如何添加独特的存在的表?改变表...?我试着“创建独特的索引...”,但这没有帮助。 – Gorets