2009-12-30 45 views
0

我有一個數據庫已分區到各種yyyymmdd聚合視圖。每個分區視圖中都有一列稱爲速度。如果今天的速度值大於昨天,是否有辦法主動監視分區視圖中的速度值,並與前一天的最大值進行比較並插入另一個表中?在視圖中動態監視SQL列值的最佳方法?

+0

什麼數據庫,你能提供示例數據和預期輸出嗎? – 2009-12-30 07:21:13

+0

您的唯一工具(從數據庫中)做這種事情是觸發器。觸發器是非常依賴平臺的,所以這會影響你的選擇。您可能還想考慮您是否不希望進行有效的查詢,以根據需要從源數據中提取所需的結果集。使用觸發器將派生數據添加到另一個表是重複的,您必須根據對源表的更改來維護該數據 - 這往往容易出錯。 – 2009-12-30 09:21:05

回答

2

如果您正在尋找所有使用SQL的數據庫平臺的通用解決方案,那麼答案是否定的,至少不在數據庫中。

但是,大多數數據庫都有觸發機制。他們是否支持視圖取決於您正在使用的數據庫。 SQL Server,例如,does allow triggers on views

如果您願意使用特定於數據庫的解決方案,那麼這是我建議首先向下看的方向。

對於所有數據庫的一般解決方案,您必須依賴應用程序代碼,定期輪詢該值,然後在執行操作之前將其與您的條件進行比較。

相關問題