SQLITE新表android

SQLITE新表android,android,sqlite,Android,Sqlite,我正在尝试向数据库中添加新表。 我更改了数据库版本,但它不起作用-仍然有相同的表 下面是SQLiteOpenHelper类 public class DB extends SQLiteOpenHelper { public final static String DBNAME="MEDCINEDB.db"; public final static String Table_name="MEDCINETable"; public final static String Table_name2="

我正在尝试向数据库中添加新表。
我更改了数据库版本,但它不起作用-仍然有相同的表

下面是SQLiteOpenHelper类

public class DB extends SQLiteOpenHelper {

public final static String DBNAME="MEDCINEDB.db";
public final static String Table_name="MEDCINETable";
public final static String Table_name2="PPLTABLE";
public final static String col1="MEDCINEID";
public final static String col2="MEDCINENAME";
public final static String col3="MEDCINEPURPOSE";
public final static String col4="NOTAPLET";
public final static String col1T2="ID";
public final static String col2T2="NAMEPPL";
public final static String col3T2="AGEPPL";
public final static int DBVersion =2;


public DB(Context context,String DBNAME, int DBVersion) {
    super(context, DBNAME, null, DBVersion);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE " + Table_name + "(MEDCINEID INTEGER PRIMARY KEY AUTOINCREMENT,MEDCINENAME TEXT,MEDCINEPURPOSE TEXT,NOTAPLET INTEGER)");
    db.execSQL("CREATE TABLE " + Table_name2 + "(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAMEPPL TEXT,AGEPPL INTEGER)");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP IF EXISTS"+Table_name);
    db.execSQL("DROP IF EXISTS"+Table_name2);
    onCreate(db);

}}

这是因为您没有删除您的现有表:

db.execSQL("DROP IF EXISTS"+Table_name);
db.execSQL("DROP IF EXISTS"+Table_name2);
应该是

db.execSQL("DROP TABLE IF EXISTS "+Table_name);
db.execSQL("DROP TABLE IF EXISTS "+Table_name2);
您缺少
TABLE
关键字,并且
EXISTS
子句和表名之间有一个空格


数据库版本常量必须正确命名为

不是

public final static int DBVersion =2;
但是


您需要调用
getWritableDatabase()
getReadableDatabase()
来实际触发
SQLiteOpenHelper
生命周期回调


然后,您还会看到“Frank”提到的空白问题的一个例外。

另一个sql缺少空格问题检查我的完整类将数据库的版本更新为更高的数字(即:10)。或者干脆取消同步并重新安装应用程序。版本常量的名称并不重要。
public final static int DATABASE_VERSION = 2;