我在 SQL 电子表格中保留旧数据时遇到问题。

huangapple go评论104阅读模式
英文:

I have problem keeping old data in SQL spreadsheet

问题

我已经在应用商店发布了我的应用程序,数据库版本是8,但出现了问题。数据库已经升级到版本10,并已添加了新的列,但现在我无法恢复旧数据,这会对用户造成很大伤害。所以我希望你提供一个有用的解决方案,不要删除先前的数据。
谢谢

  1. public class DatabaseHelper extends SQLiteOpenHelper {
  2. private static final String DB_BALL = "ball.db";
  3. public DatabaseHelper(@Nullable Context context) {
  4. super(context, DB_BALL, null, 10);
  5. }
  6. @Override
  7. public void onCreate(SQLiteDatabase db) {
  8. db.execSQL("create table volleyball_db " +
  9. "( id INTEGER PRIMARY KEY AUTOINCREMENT, team_a TEXT ,goals_a TEXT," +
  10. " team_b TEXT, goals_b TEXT, round TEXT, date_volleyball TEXT, clock_volleyball TEXT)");
  11. db.execSQL("create table basketball_db " +
  12. "( id INTEGER PRIMARY KEY AUTOINCREMENT, team_a TEXT ,goals_a TEXT," +
  13. " team_b TEXT, goals_b TEXT, round TEXT, date_basketball TEXT,clock_basketball TEXT)");
  14. db.execSQL("create table football_db " +
  15. "( id INTEGER PRIMARY KEY AUTOINCREMENT, team_a TEXT ,goals_a TEXT, card_red_a TEXT, card_yellow_a TEXT," +
  16. " team_b TEXT, goals_b TEXT , card_red_b TEXT, card_yellow_b TEXT, round TEXT, date_football TEXT)");
  17. }
  18. @Override
  19. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  20. db.execSQL("DROP TABLE IF EXISTS volleyball_db ");
  21. db.execSQL("DROP TABLE IF EXISTS basketball_db ");
  22. db.execSQL("DROP TABLE IF EXISTS football_db ");
  23. onCreate(db);
  24. }
  25. }
英文:

I have already released my app in the app store and the database version was 8, but there is a problem. The database has already updated to version 10 and has already added new columns, but now I can't recover old data and this will hurt users a lot. So I wish you a useful solution that does not delete the previous data
Thank you

public class DatabaseHelper extends SQLiteOpenHelper {

  1. private static final String DB_BALL = "ball.db";
  2. public DatabaseHelper(@Nullable Context context) {
  3. super(context, DB_BALL, null, 10);
  4. }
  5. @Override
  6. public void onCreate(SQLiteDatabase db) {
  7. db.execSQL("create table volleyball_db "+ "( id INTEGER PRIMARY KEY AUTOINCREMENT, team_a TEXT ,goals_a TEXT," +
  8. " team_b TEXT, goals_b TEXT, round TEXT, date_volleyball TEXT, clock_volleyball TEXT)");
  9. db.execSQL("create table basketball_db "+ "( id INTEGER PRIMARY KEY AUTOINCREMENT, team_a TEXT ,goals_a TEXT," +
  10. " team_b TEXT, goals_b TEXT, round TEXT, date_basketball TEXT,clock_basketball TEXT)");
  11. db.execSQL("create table football_db "+ "( id INTEGER PRIMARY KEY AUTOINCREMENT, team_a TEXT ,goals_a TEXT, card_red_a TEXT, card_yellow_a TEXT," +
  12. " team_b TEXT, goals_b TEXT , card_red_b TEXT, card_yellow_b TEXT, round TEXT, date_football TEXT)");
  13. }
  14. @Override
  15. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  16. db.execSQL("DROP TABLE IF EXISTS volleyball_db ");
  17. db.execSQL("DROP TABLE IF EXISTS basketball_db ");
  18. db.execSQL("DROP TABLE IF EXISTS football_db ");
  19. onCreate(db);
  20. }

答案1

得分: 1

数据库表格被删除后,无法恢复数据。您应该使用 ALTER TABLE 更新表格。

英文:

Once the database tables have been dropped, you cannot recover the data. you should use ALTER TABLE to update the tables

huangapple
  • 本文由 发表于 2020年4月9日 04:11:38
  • 转载请务必保留本文链接:https://go.coder-hub.com/61109222.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定