2016-06-27 4 views
0

の最後の要素を削除しますので...これは私のコードです:は、SQLiteのDBテーブル

public static final String DATABASE_NAME = "MY_DATABASE"; 
public static final String DATABASE_TABLE = "MY_TABLE"; 
public static final int DATABASE_VERSION = 1; 
public static final String KEY_CONTENT = "Content"; 
public static final String KEY_ID = "_id"; 

private static final String SCRIPT_CREATE_DATABASE = "create table " 
     + DATABASE_TABLE + " (" + KEY_ID 
     + " integer primary key, " + KEY_CONTENT 
     + " text not null);"; 
private SQLiteHelper sqLiteHelper; 
private SQLiteDatabase sqLiteDatabase; 
private Context context; 

public SQLiteAdapter(Context c) { context = c; } 

public int delete() { 
    return sqLiteDatabase.delete(DATABASE_TABLE, KEY_ID , null); 
} 

ログに間違いメッセージはありません。私は私の携帯電話でそれを実行するときにのみ壊れます。私はたくさんのソリューションを使いました。それは仕事をしたくはありません((( は誰もが私のテーブル内の最後の要素を削除する方法を、教えてもらえますか?

答えて

2

をのid DESCによって一つの要素に限定して注文した選択クエリで最後に挿入された要素を取得します。

あなたはすべての要素throughtループもできたし、最後まで件のデータを上書きしますが、あなたのDBは件のデータをたくさん持っている場合は、そのあまり効率的ではありません。

最後に、あなたが挿入した直後に

SELECT last_insert_rowid() 

を使用することができます何かとクラススコープ変数としてのid。

https://www.sqlite.org/c3ref/last_insert_rowid.html

1

SqliteDatabase.delete()方法の第2のパラメータは、WHERE句です。あなたはdelete()節に渡さなかった、あなたが削除したいことを言っていない。基本的には、次のSQLクエリを取得します。

DELETE FROM DATABASE_TABLE WHERE KEY_ID; 

@Alexandre Martinは、最後のIDを取得する方法をいくつか教えてくれました。