当前位置:  开发笔记 > 数据库 > 正文

SQLite:防止重复

如何解决《SQLite:防止重复》经验,为你挑选了1个好方法。

我想创建一个表来存储设备设置.该表有三行:id,parameter_name和parameter_value.

该表是通过执行以下查询语句创建的:

DATABASE_CREATE = "create table DATABASE_TABLE (KEY_ID INTEGER PRIMARY KEY AUTOINCREMENT, KEY_NAME INTEGER not null, VALUE TEXT not null);

然后通过执行以下方法存储行:

private long insertRow(int rowParameter, String rowValue, SQLiteDatabase db){
    long res = -1;
    ContentValues settingsParameterValues = new ContentValues();
    settingsParameterValues.put(KEY_NAME, rowParameter);
    settingsParameterValues.put(VALUE, rowValue);
    if(db != null){
        res = db.insert(DATABASE_TABLE, null, settingsParameterValues);
    }
    return res;
}

创建数据库时,将存储默认值:

@Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(DATABASE_CREATE);
        insertRow(PRIVACY_LEVEL_ROW_INDEX, "0", db);
        insertRow(STREAM_TITLE_ROW_INDEX, "untitled", db);
        insertRow(STREAM_TAGS_ROW_INDEX, "", db);
    }

但是insertRow()方法的问题在于它无法阻止重复条目.

在这种情况下,有谁知道如何防止重复输入?



1> Mark Rushako..:

您可以使用列约束UNIQUE.

UNIQUE约束导致在指定列上创建唯一索引.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有