2016-01-19 48 views
0

我想查找其特定字段昨天修改的特定表的記錄,並查找字段和舊值的當前值。如何從web2py中的存檔表中提取舊記錄?

例如,我有company表的字段idnameaddress。我想跟蹤name字段,並在修改後查找當前值和舊值。我會在一天結束的時候運行它。

在web2py中,如果我們編輯記錄,那麼在歸檔表中創建兩行,第一個包含舊數據,第二個包含當前記錄。我可以假設舊的行和當前的記錄行總是緊接着?或者他們之間可以有行嗎? web2py在寫入歸檔表時使用了鎖嗎?請解釋如何創建存檔條目。

請幫忙!

回答

0

鎖定或不鎖定,我不認爲你應該只對名稱字段使用查詢,然後返回一行並獲取舊名稱。如果名稱不是唯一的(通常不是),這可能會給您帶來問題。

更好的方法是將公司表的ID存儲在歸檔表中,並使用它查詢舊名稱。

所以,你的檔案表,現在應該是這樣的,

| id | name | company_id | 

然後使用上的歸檔表的查詢,你可以得到所有行對於一個給定的company_id:

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

而且,爲了獲得舊名稱你將不得不做類似的事情,

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

這將返回你的姓你最初尋找的。我希望這有幫助。

+0

我正在使用由web2py生成的歸檔表而不是我自己的歸檔表。請參閱[記錄版本控制](http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer?search=archive#Record-versioning) –

相關問題