【问题标题】:How to extract old record from archive table in web2py?如何从 web2py 的存档表中提取旧记录?
【发布时间】:2016-04-24 21:32:03
【问题描述】:

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

例如,我有 company 表,其中包含字段 idnameaddress。我想跟踪name 字段并在修改时查找当前值和旧值。我将在一天结束时运行它。

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

请帮忙!

【问题讨论】:

    标签: database web2py archive


    【解决方案1】:

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

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

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

    | id | name | company_id |
    

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

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

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

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

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

    【讨论】:

    • 我使用的是 web2py 生成的存档表,而不是我自己的存档表。见Record Versioning
    猜你喜欢
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 2011-05-29
    相关资源
    最近更新 更多