gpt4 book ai didi

java - 如何使用 onUpgrade() 添加多个表而不丢失任何数据或表

转载 作者:行者123 更新时间:2023-12-02 04:24:39 27 4
gpt4 key购买 nike

我已经使用 onUpgrade() 添加了一个表,现在我刚刚意识到需要添加另一个表。我希望在不丢失任何以前的数据或表格的情况下执行此操作。

我尝试从 onUpgrade 中删除所有内容以添加新表,但它只是使应用程序崩溃。我想保留所有 3 个现有表并添加一个新表

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE "+ TABLE_NAME+ "(Datee DATE, Challan INTEGER PRIMARY KEY,Lr VARCHAR, Than INTEGER, Quality TEXT, Decise DATE, Panna INTEGER, Caustic Date, Party TEXT, Marka Text)");
db.execSQL("Create table "+ TABLE_NAME2+" (id INTEGER PRIMARY KEY AUTOINCREMENT, challan INTEGER UNIQUE, date DATE, than INTEGER, marka VARCHAR, quality VARCHAR ) ");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+ TABLE_NAME);
db.execSQL("Drop table if exists "+ TABLE_NAME2 );
onCreate(db);
db.execSQL("Create table "+ TABLE_NAME3+" (id INTEGER PRIMARY KEY AUTOINCREMENT, marka VARCHAR, indate DATE, qty INTEGER, outdate DATE, stamp DATE Default CURRENT_DATE ) ");

}

最佳答案

您可以在表定义中使用IF NOT EXISTS子句。

因此你可以使用:-

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS "+ TABLE_NAME+ "(Datee DATE, Challan INTEGER PRIMARY KEY,Lr VARCHAR, Than INTEGER, Quality TEXT, Decise DATE, Panna INTEGER, Caustic Date, Party TEXT, Marka Text)");
db.execSQL("Create table IF NOT EXISTS "+ TABLE_NAME2+" (id INTEGER PRIMARY KEY AUTOINCREMENT, challan INTEGER UNIQUE, date DATE, than INTEGER, marka VARCHAR, quality VARCHAR ) ");
db.execSQL("Create table IF NOT EXISTS "+ TABLE_NAME3+" (id INTEGER PRIMARY KEY AUTOINCREMENT, marka VARCHAR, indate DATE, qty INTEGER, outdate DATE, stamp DATE Default CURRENT_DATE ) ");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onCreate(db);

}

因此,不会创建现有表,因为它们不会被删除。

如果您想满足更复杂的场景,例如应用程序已经发布,那么您可以利用 oldVersion 和/或 newVersion 值,并为每个版本更改制定特定的例程。

关于java - 如何使用 onUpgrade() 添加多个表而不丢失任何数据或表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56612948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com