如果表已存在,请不要插入行并提供吐司

时间:2016-05-18 02:52:28

标签: android sqlite

我有一个应用程序,允许用户从临时表中保存一些选定的行。用户可以命名新表。

我使用用户输入的名称成功创建了一个表,并将临时表中所有选定的行放入新表中。

但是,如果他们输入的表名已经存在,我想通过Toast通知他们并让他们选择其他名称。我还在学习sqlite - 有没有办法做到这一点?

在我的脑海中,我使用某种if语句检查表是否存在,然后执行代码,但是一半是在sqlite中,一半是在java中。我不确定这样做的正确方法。非常感谢任何建议!

private void createTable() {
    dbHandler.getWritableDatabase().execSQL("CREATE TABLE IF NOT EXISTS " + favoriteName + " ( _id INTEGER PRIMARY KEY AUTOINCREMENT , exercise TEXT , bodypart TEXT , equip TEXT );");
    dbHandler.getWritableDatabase().execSQL("INSERT INTO " + favoriteName + " SELECT * FROM randomlypicked");

1 个答案:

答案 0 :(得分:2)

尝试

Cursor cursor = dbHandler.getReadableDatabase().rawQuery("select DISTINCT tbl_name from sqlite_master where tbl_name = '"+tableName +"'", null);
if(cursor!=null) {
    if(cursor.getCount()>0) { //table already exists
        //show toast
        cursor.close();
        return;
    }
    cursor.close();
}
//create table and insert normally