sqlite数据库插入重复数据

时间:2015-08-13 03:02:17

标签: android sqlite

我从webservice获取数据并将它们插入到activity onCreate()函数中的数据库中。代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.contact_person);

    RunningService runningService = new RunningService();
    runningService.insert(staff);
    initView();
}

insert()的代码如下:

public void insertAllStaff(Staff staff){
    ContentValues values = new ContentValues();
    values.put("name", staff.getName());
    Uri uri = contentResolver.insert(CONTENT_URI, values);
}

每次进入此活动时,它都会将数据插入数据库,数据是相同的。

是否有一种方法可以进入此活动并且不会将相同的数据插入数据库?

2 个答案:

答案 0 :(得分:1)

如果您不想为表重复值,则必须为您认为的字段定义唯一索引"唯一"。

您可以在表CREATE时执行此操作,也可以使用ALTER SQL语句创建索引。

答案 1 :(得分:0)

SQLite支持INSERT NOT EXISTS语法。

INSERT INTO MyTable(id,text) 
SELECT 123, 'Helloworld' 
WHERE NOT EXISTS(SELECT 123 FROM MyTable WHERE id = 123');

请使用此语法来提高性能。
您使用解析器的哪个内容提供商?您可能需要更改它并使用其他使用上述SQL语句的内容。