Android 如何删除sqlite中的匹配项

Android 如何删除sqlite中的匹配项,android,sqlite,Android,Sqlite,我想从sqlite中删除一行,但我的senario是当我第一次输入文本字段时,它应该插入到表中,当我再次输入具有相同值的文本字段时,它不应该作为第二行输入,它应该删除第一个条目并得到更新,表Id应该保持为1 我不知道怎么做,请建议我,因为我第一次做的数据库 谢谢 表格创建: "CREATE TABLE secure" + DatabaseContract.RetailDatabaseEntry.TABLE_NAME_SETTINGS + " (" +

我想从sqlite中删除一行,但我的senario是当我第一次输入文本字段时,它应该插入到表中,当我再次输入具有相同值的文本字段时,它不应该作为第二行输入,它应该删除第一个条目并得到更新,表Id应该保持为1

我不知道怎么做,请建议我,因为我第一次做的数据库

谢谢

表格创建:

            "CREATE TABLE secure" + DatabaseContract.RetailDatabaseEntry.TABLE_NAME_SETTINGS + " (" +
                    DatabaseContract.RetailDatabaseEntry.COLUMN_ID_SETTINGS+ " INTEGER PRIMARY KEY AUTOINCREMENT," +
                    DatabaseContract.RetailDatabaseEntry.COLUMN_FIRSTNAME + " TEXT UNIQUE ON CONFLICT REPLACE,"+
                    DatabaseContract.RetailDatabaseEntry.COLUMN_LASTNAME +" TEXT,"+
                    DatabaseContract.RetailDatabaseEntry.COLUMN_PHONENUMBER +" TEXT,"+
                    DatabaseContract.RetailDatabaseEntry.COLUMN_EMAILADDRESS +" TEXT,"+
                    DatabaseContract.RetailDatabaseEntry.COLUMN_ADDRESSLINE1 +" TEXT,"+
                    DatabaseContract.RetailDatabaseEntry.COLUMN_ADDRESSLINE2 +" TEXT,"+
                    DatabaseContract.RetailDatabaseEntry.COLUMN_LOCALITY +" TEXT,"+
                    DatabaseContract.RetailDatabaseEntry.COLUMN_CITY +" TEXT,"+
                    DatabaseContract.RetailDatabaseEntry.COLUMN_PINCODE +" TEXT" + 
                    ")";

您需要将
UNIQUE
约束添加到您不希望有重复值的表的列中。如下

COLUMN_NAME+ " TEXT UNIQUE, "

它不像你想象的那么难。创建数据库时,将值设置为uniique,如下所示:

db.execSQL("CREATE TABLE secure (" +
            "_id INTEGER PRIMARY KEY AUTOINCREMENT," +
            "name TEXT UNIQUE ON CONFLICT REPLACE," +
            "value TEXT" +
            ");");

现在,当您尝试在上表中反复插入相同的“名称”时,sqlite将自动为您插入和替换。因此没有重复的值。

比如,如果我的表中有4-5列,并且通过使一列唯一,我可以更新整行吗?如果我得到重复的文本值?我尝试了,但不起作用,请检查我创建的表。我正在更新我的问题。文本类型是什么?。。最好将“文本类型”放在引号外,它是文本。我在创建所有表时使用了不同的类…………私有静态最终字符串TEXT\u TYPE=“TEXT”;表值和它们的类型表之间没有空格,我不明白你想说什么。我做了一些编辑,检查了它们。