gpt4 book ai didi

android - 如何避免 Sqlite 数据库中的冗余?

转载 作者:行者123 更新时间:2023-11-30 01:38:33 26 4
gpt4 key购买 nike

我为书签/收藏夹(按钮)创建了一个数据库(sqlite)。该表只有 2 行(id、书签)。每次我单击书签按钮时,它都会在书签列中添加相同的书签(字符串)。

这是我的数据库代码(DatabaseHelper.java):

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Bookmark.db";
public static final String TABLE_NAME = "bookmark_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "BOOKMARK";


public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, BOOKMARK TEXT)");
}

@Override
public void onUpgrade(SQLiteDatabase db, int i, int i2) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}

public boolean insertData(String bookmark){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2, bookmark);
long result = db.insert(TABLE_NAME, null, contentValues);
if(result == -1)
return false;
else
return true;
}

public Cursor getAllData(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("select * from " + TABLE_NAME, null);
return res;
}
}

如何使“书签”列唯一?

最佳答案

只需在列描述后添加UNIQUE,如下所示:

db.execSQL("create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY  AUTOINCREMENT, BOOKMARK TEXT UNIQUE)");

关于android - 如何避免 Sqlite 数据库中的冗余?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34805555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com