Java 如何在ORMLITE android的升级方法中添加主键?
在我的项目中,我使用了ORMLite。现在,我为添加了一个主键 tjeJava 如何在ORMLITE android的升级方法中添加主键?,java,android,ormlite,Java,Android,Ormlite,在我的项目中,我使用了ORMLite。现在,我为添加了一个主键 tjeaccountId字段,并且还更改了数据库版本。请帮助我,我不知道如何在onUpgrade(…)中编写查询。供参考I 在下面附上账户类 public class Account implements Serializable { @DatabaseField private String cdate; @DatabaseField(id=true) private Integer accoun
accountId
字段,并且还更改了数据库版本。请帮助我,我不知道如何在onUpgrade(…)
中编写查询。供参考I
在下面附上账户
类
public class Account implements Serializable {
@DatabaseField
private String cdate;
@DatabaseField(id=true)
private Integer accountId;
@DatabaseField
private String Type;
@DatabaseField
private String Desc;
@DatabaseField
private String UpdatedDate;
}
我不知道如何在onUpgrade(…)中编写查询
诀窍是找出需要执行哪些Sqlite命令来添加主键。你可以通过查看。在这里,您可以看到您的accountId
字段应定义为:
accountId INTEGER PRIMARY KEY ASC
因此,您的onUpdate(…)
方法应该类似于:
if (version of db is the old-version) {
dao.executeRaw("ALTER TABLE account ADD COLUMN accountId INTEGER PRIMARY KEY ASC;");
}
您应该根据数据库的旧版本有条件地执行此操作。是否可以
accountId
benull
?如果不是,则应为int
。谢谢您的回答。我已经添加了accountId列,只需要单独添加主键。但我通过创建新表并从旧表复制到新表来修复它。