【问题标题】:In java, how can I delete a sqlite table?在java中,我怎样才能删除一个sqlite表?
【发布时间】:2011-07-18 20:43:17
【问题描述】:

我正在开发安卓应用。我必须在我的活动中开发一个 xml 按钮,并构建我的 sqlite 数据库和表。我怎样才能让用户按下一个按钮来删除一个表?谢谢。

【问题讨论】:

标签: java android sqlite


【解决方案1】:

如果没有更多上下文很难回答,但最终的 sqlite 查询将是:

db.execSQL("DROP TABLE IF EXISTS table_name");

其中 db 是对 SqliteDatabase 对象的引用。

【讨论】:

  • 非常感谢,但是当我将语句放在下一段时,它仍然不起作用: public void onOpen(){ Button next3= (Button) findViewById(R.id.Button03) ; next3.setOnClickListener(new View.OnClickListener() { SQLiteDatabase db; @Override public void onClick(View view) { db.execSQL("DROP TABLE IF EXISTS title"); } }); }
  • 你仍然需要有一个对数据库的有效引用,你需要先打开它,这里有一个简单的教程reigndesign.com/blog/…。不过,如果您最终想要在这方面做更多事情,您将需要查看 Content Providers。
【解决方案2】:

您的问题有些模棱两可。请注意,DELETING 表和 DROPPING 表之间存在区别。删除表只会删除其行中的所有数据:

database.delete(TABLE_NAME, null, null);

在此之后,您仍然可以引用该表,因为它仍然存在,但是如果不使用 sql 中的 CREATE TABLE IF NOT EXISTS 表达式,创建一个具有相同名称的新表可能会出现问题。 p>

使用 DROP TABLE 会完全删除该表,除非重新创建,否则无法再次引用它。

正如其他人所指出的,如果您希望将其从数据库中完全删除,这应该可以:

db.execSQL("DROP TABLE IF EXISTS table_Name");

【讨论】:

    【解决方案3】:
    SQLiteDatabase sdb;
    sdb=openOrCreateDatabase("dbname.db", Context.MODE_WORLD_WRITEABLE, null);
    sdb.execSQL("DROP TABLE IF EXISTS tablename");
    

    【讨论】:

      【解决方案4】:

      作为单例方法

       // todo DELETE a special field(s)
      public boolean deleteFromTable(int yurtId) {
          SQLiteDatabase database = dbHelper.getReadableDatabase();
          final String whereClause = DBHelper.COLUMN_Y_YURT_ID + " =?";
          final String whereArgs[] = {String.valueOf(yurtId)};
          int affectedRows = database.delete(DBHelper.TABLE_NAME_YEMEKCI, whereClause, whereArgs);
          return affectedRows > 0;
      }
      
        // todo DELETE all table 
      public boolean deleteTable() {
          SQLiteDatabase database = dbHelper.getReadableDatabase();
          int affectedRows = database.delete(DBHelper.TABLE_NAME_YEMEKCI, null, null);
          return affectedRows > 0;
      }
      

      【讨论】:

        猜你喜欢
        • 2014-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-24
        • 2022-01-19
        • 1970-01-01
        • 2014-03-20
        相关资源
        最近更新 更多