java – 如何在sqlite中的数据库中添加第二个表?
发布时间:2020-12-15 02:01:53 所属栏目:Java 来源:网络整理
导读:我有数据库考试指南,我已经创建了一个表table_subject和现在 我想在这个数据库中创建第二个表(table_chapter).我的问题是如何在现有数据库中添加此表?我有以下代码.任何帮助赞赏. private static final String DATABASE_CREATE = "create table IF NOT EXIS
我有数据库考试指南,我已经创建了一个表table_subject和现在
我想在这个数据库中创建第二个表(table_chapter).我的问题是如何在现有数据库中添加此表?我有以下代码.任何帮助赞赏. private static final String DATABASE_CREATE = "create table IF NOT EXISTS " + TABLE_SUBJECT + "( " + COLUMN_ID + " integer primary key autoincrement," + COLUMN_SUBJECT + " text not null," + COLUMN_CHAPTER + " text," + COLUMN_QUESTION + " text not null," + COLUMN_OPTIONA + " text not null," + COLUMN_OPTIONB + " text not null," + COLUMN_OPTIONC + " text not null," + COLUMN_OPTIOND + " text not null," + COLUMN_CORRECT + " text not null," + COLUMN_CONFIRM + " text not null);"; private static final String DATABASE_CREATE1 = "create table IF NOT EXISTS " + TABLE_CHAPTER + "( " + COLUMN_ID + " integer primary key autoincrement," + COLUMN_SUBJECT + " text not null," + COLUMN_CHAPTER + " text," + COLUMN_QUESTION + " text not null," + COLUMN_OPTIONA + " text not null," + COLUMN_OPTIONB + " text not null," + COLUMN_OPTIONC + " text not null," + COLUMN_OPTIOND + " text not null," + COLUMN_CORRECT + " text not null," + COLUMN_CONFIRM + " text not null);"; public MySQLiteHelper open() throws SQLException { db = this.getWritableDatabase(); return this; } public MySQLiteHelper(Context context) { super(context,DATABASE_NAME,null,DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase database) { database.execSQL(DATABASE_CREATE); database.execSQL(DATABASE_CREATE1); } 此代码不会创建第二个表.我想在我的数据库中使用这两个表. 03-21 18:31:06.551: ERROR/Database(8255): Error inserting chapter=paging correctoption=shadow copy craete a duplicate copy of page subject=operating system question=what is shadow copy? optiona=shadow copy craete a duplicate copy of page confirm=YES optionb=sahdow copy create paging optionc=shadow copy delete duplicate page optiond=shadow copy delete original and create shadow copy 03-21 18:31:06.551: ERROR/Database(8255): android.database.sqlite.SQLiteException: no such table: chapter:,while compiling: INSERT INTO chapter(chapter,correctoption,subject,question,optiona,confirm,optionb,optionc,optiond) VALUES(?,?,?); 03-21 18:31:06.551: ERROR/Database(8255): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 03-21 18:31:06.551: ERROR/Database(8255): at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92) 03-21 18:31:06.551: ERROR/Database(8255): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65) 03-21 18:31:06.551: ERROR/Database(8255): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83) 03-21 18:31:06.551: ERROR/Database(8255): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41) 03-21 18:31:06.551: ERROR/Database(8255): at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1149) 03-21 18:31:06.551: ERROR/Database(8255): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1569) 03-21 18:31:06.551: ERROR/Database(8255): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426) 03-21 18:31:06.551: ERROR/Database(8255): at com.example.examguide.MySQLiteHelper.insertChapterData(MySQLiteHelper.java:212) 03-21 18:31:06.551: ERROR/Database(8255): at com.example.examguide.ObjectiveAddActivity$2.onClick(ObjectiveAddActivity.java:155) 解决方法
创建另一个CREATE TABLE String,然后在onCreate中再次调用execSQL:
database.execSQL(DATABASE_CREATE1); database.execSQL(DATABASE_CREATE2); 编辑 要将另一个表添加到现有数据库,请按如下所示修改onUpgrade方法.每当需要升级数据库时都会调用onUpgrade;请注意,您必须增加VERSION_NUMBER(您希望将其包含在类中的私有实例变量中)才能使其生效. @Override public void onUpgrade (SQLiteDatabase db,int oldVersion,int newVersion) { db.executeSQL(DATABASE_CREATE2); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – Android – openCV,获取图像的一部分 – 奇怪的行为
- Hibernate hibernate.max_fetch_depth属性:设置抓取深度
- Java 2D回合制游戏编程:每个玩家可以处理2次鼠标点击
- Java:ResultSet getString()在不同环境之间有所不同
- java – Android – 动态设置drawable的渐变
- JavaWeb图片上传的几种方式
- java – 有没有办法让所有的元素在一个JList?
- java – 如何使用反射告诉方法有一个varargs参数?
- java – RubyMine在linux上
- java – Android PayPalActivity不是全屏