有獨立運行的用Java開發兩個不同的過程, 如果任何進程的modifyies表,我可以得到任何暗示?隨着表格的修改。我的目標是我想要一個對象始終與數據庫中的表同步,如果在表上發生任何修改我想修改對象。 如果表被修改,我可以得到任何關於這個的暗示?數據庫提供這樣的設施嗎?辦法知道表被修改
辦法知道表被修改
回答
不,數據庫不提供這些服務。您必須定期查詢以檢查修改。或者使用一些JMS解決方案將通知從一個應用程序發送到另一個。
我們使用SQL Server和有一定的觸發火警當一個表被修改和調用外部的二進制文件。我們調用的二進制文件發送Tib會合消息來通知其他應用程序該表已更新。
不過,我不是這個解決方案的一個巨大的風扇 - 好多了通過一個「託管」過程控制寫入你的表,並有其他的應用代表了這一點。爲了執行此操作,您可以更改您的表的權限,以便只有您的託管進程可以寫入數據庫。
這種方法的另一個好處是能夠在您的託管過程中提供了一個緩存層,以滿足公共接入模式。當然,DBMS無論如何執行緩存,但通過在應用程序層提供緩存,您將擁有更多的控制/可視性。
- 您可以將時間戳列(last_modified)添加到表中,並定期檢查更新或序列號(它們在概念上類似於樂觀鎖定的更新時遞增)。
- 您可以使用提供更新機制的jboss cache。
您必須創建一個單獨的表來跟蹤修改 - 表中的列本身無法跟蹤是否存在刪除 – Joe 2010-07-09 10:12:52
的一種方式,你可以做到這一點:只需附上數據庫語句中應返回'true'
當成功地完成的方法。在代碼中維護標誌的範圍,以便每當你想檢查表是否被修改時。你爲什麼不嘗試這樣?
如果你願意接受黑客的做法,和你的數據庫存儲表的文件(例如,MySQL的),你總是可以擁有的東西,可以檢查磁盤上的文件的修改時間,看看是否它改變了。
當然,如Oracle數據庫,其中的表被分配到表空間和表空間是什麼在磁盤上存儲將無法正常工作。
(是的,我知道這是一個不好的方法,這就是爲什麼我說這是一個黑客 - 但我們不知道所有的要求,如果他需要快速,而不重寫整個應用程序,這將在技術上適用於某些數據庫)
- 1. 如何知道PHAsset是否被修改?
- 2. 如何知道表單是否已被修改
- 3. 如何知道是否一個std ::列表已被修改
- 4. MySql:知道表最後修改日期
- 5. Java:如何知道XML文檔何時被修改
- 6. foreach如何知道迭代集合被修改?
- 7. 如何知道VBA宏中的文件何時被修改?
- 8. Redux-form - 有沒有辦法知道哪些字段已被更改? (update&PATCH)
- 9. 有沒有辦法知道,如果輸入值被網頁或用戶更改?
- 10. 辦法知道當的ObjectURL已經被下載(撤銷它...)
- 11. 有沒有辦法知道異常是否被禁用?
- 12. 有沒有辦法讓對象知道它被添加到DOM?
- 13. 如何知道單元格數據沒有被更改或修改?
- 14. 有誰知道是否有辦法修改wp-login.php?action = register表單的action屬性?
- 15. 有沒有辦法知道一個對象的C#方法是否被調用?
- 16. 防止在git上修改被修改的文件被修改
- 17. 有沒有辦法修改一個不可修改的集合?
- 18. 有沒有辦法知道HTML表單當前正在提交?
- 19. 無法修改表
- 20. 無法修改表
- 21. 有沒有辦法修改FILTER_SANITIZE_STRING
- 22. 無法知道值是否被插入
- 23. 如何使用DirtyKeys知道PFUser中的「email」字段是否已被修改?
- 24. 我可以知道文件的哪個條目正在被修改嗎?
- 25. Netbeans編輯器如何知道該文件在撤消後未被修改?
- 26. 如何使cleartool知道源自上次基線以來是否被修改
- 27. 知道所選行未被修改時,使用NOLOCK有哪些風險?
- 28. 有沒有辦法知道自定義通知即將顯示?
- 29. 有沒有辦法知道視圖何時可以被用戶看到?
- 30. 有沒有辦法知道uitableview上的索引何時被實際使用?
「修改」是什麼意思?你在談論使用DDL(alter table)修改實際的表定義,還是僅僅使用DML修改行數據(插入/更新/刪除)? – 2010-07-09 14:07:38