我想创建一个表来存储设备设置。该表具有三行: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()的问题在于它无法防止重复输入。
有谁知道在这种情况下如何防止重复输入?
您可以使用列约束UNIQUE。
UNIQUE
UNIQUE约束导致在指定列上创建唯一索引。