是否可以创建具有两个表的房间图元?我知道存储重复数据不是最佳做法,但我需要一个备份表将数据恢复到原始状态。
@Entity(tableName = "models", "backupModels")
public class Entity {
@PrimaryKey
@ColumnInfo(name = "id")
private int id;
@ColumnInfo(name = "model")
private String model;
public Entity() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
}
1条答案
按热度按时间yks3o0rb1#
是否可以创建具有两个表的房间图元?
否@实体仅定义一个表。
您可以通过重命名类并使用另一组dao来复制实体。
但是,如果只是为了后面的目的,那么不妨考虑下面的工作示例(设计为只运行一次)。
这是基于创建表的吗?作为select语句,对于restore insert into table select。。。;
您只需要不做任何更改的单个实体(除去第二个表名除外)。实体:-
一个非常基本的@dao-alldao(允许演示):-
备份/还原代码在@database数据库中编码:-
注意
restore
及backup
方法可以适应任何表格。但是,可能必须考虑遵守约束(例如,如果使用外键约束)。还原方法创建进一步的备份(可选)作为以防万一的备份(旧型号)。
DROP
ping models_old table是可选的。将所有内容放在一起并进行演示是主要活动:-
因此:-
向“模型”表中添加一行。
做备份。
将第二行添加到“模型”表中。
将模型表的内容写入日志(2行)。
恢复模型表(当存在一行时)。
将restore models表的内容写入日志(1行)。
结果
运行时,日志包括:-
注意:使用时请考虑限制。
CREATE TABLE ... AS SELECT ....