如何从web2py中的归档表中提取旧记录?

时间:2016-01-19 12:00:21

标签: database web2py archive

我想找到昨天修改了特定字段的特定表的记录,并找到字段和旧值的当前值。

例如,我的company表包含字段idnameaddress。我想跟踪name字段并查找当前值和旧值(如果已修改)。我会在一天结束时运行它。

在web2py中,如果我们编辑记录,则在归档表中创建两行,第一行包含旧数据,第二行包含当前记录。我可以假设旧的行和当前记录行总是背靠背吗?或者他们之间可能有争议? web2py在写入归档表时是否使用了锁?请解释如何创建存档条目。

请帮忙!

1 个答案:

答案 0 :(得分:0)

锁定或没有锁定,我认为您不应该只在名称字段上使用查询,然后返回一行并获取旧名称。如果名称不是唯一的(通常不是),这可能会给您带来麻烦。

更好的方法是将公司表的id存储在存档表中,并使用它来查询旧名称。

所以你的档案表现在应该是这样的,

| id | name | company_id |

然后在归档表上使用查询,您可以获取给定company_id的所有行:

rows = (db.archive.company_id == company_id).select()

而且,要获得旧名称,您必须执行类似的操作,

old_name = rows[len(rows) - 1].name

这将返回您最初寻找的姓氏。我希望这会有所帮助。