2015-02-09 88 views
0

我想創建一個視圖,該視圖僅返回自上次運行視圖以來添加到數據庫的新數據。我知道這聽起來像一個簡單的問題,在這裏有幾百萬的問題,但在我的情況下有一些限制。自上次查詢以來,MySQL查詢/視圖僅提取新數據

  • 我不能使用存儲過程,函數或觸發器。
  • 訪問視圖的用戶只能讀取數據庫。

我張貼了類似的問題here,並要添加一個UPDATE語句來更新與當前日期時間的表,然後在這個日期之後的視圖,只有查詢開始查這個表。但訪問該視圖的用戶現在只能讀取訪問權限。

我也在考慮可能存在一種時間戳列,當用SELECT語句讀取時更新到當前時間,但顯然不是。

僅供參考,只有一位用戶訪問此視圖。

任何幫助非常感謝。

+0

我不確定,是否有可能。 MySQL不存儲,不管這個記錄是否是上次返回的。由於您無法寫入數據庫,因此無法自行編寫它。 – user4035 2015-02-09 12:36:28

回答

0

如果用戶只具有對數據庫的讀取訪問權限,則必須將相關信息存儲在應用程序層而不是數據庫中。如果您沒有寫入權限,或者至少信息不屬於其他某個過程,那麼根本無法將信息存儲在數據庫中。

建議將爲應用程序跟蹤返回的記錄 - 記錄最大值CreatedAt值或id

select v.* 
from view v 
where id > $id; 

隨後的代碼將在應用更新$id:然後使用類似訪問數據庫。

+0

感謝您的支持,遺憾的是沒有任何應用。用戶直接查詢視圖。 – superphonic 2015-02-09 13:31:00