Oracle

獲取序列值日期?

  • June 16, 2021

我有一個包含數百個表的OOB 系統。每個表都有一個 ROWSTAMP 列(整數),每次創建/更新記錄時都會由觸發器填充。

數據庫中的所有表和触發器都使用相同的序列。每次在數據庫中的任何位置更新記錄時,都會使用一個序列來獲取下一個可用整數。(我想我可以認為該序列是一種全域序列)。

IBM:Maximo 表中 ROWSTAMP 列的使用

不幸的是,那些 ROWSTAMP 列是整數,而不是日期。我在表中真正需要的是 CHANGEDATE 列。一般來說,日期對於數據輸入故障排除、報告和分析很有用。但我不能真正證明自定義數百個帶有日期列的表並在 OOB 系統中添加數百個觸發器是合理的。IBM 不支持定製表,因此不值得付出努力/增加複雜性。


我覺得那些 ROWSTAMP 列對我非常有用。我不禁想知道:

有沒有辦法檢索生成這些 ROWSTAMP 序列值的日期?

例如,我懷疑這是可能的,我可以在序列中添加一個 DATE 列,然後從我的表連接到序列以獲取日期嗎?或者,每當使用下一個序列值時,我是否可以在序列上使用某種日誌記錄機制將行(帶日期)放入表中?

無法將日期添加到序列中,也無法從本質上知道何時生成序列值。除了觸發器觸發的所有其他更改之外,您需要向CHANGEDATE每個表添加一列並讓觸發器為每個修改的記錄更新該列,或者使用 and 創建一個審計表ROWSTAMPCHANGEDATE插入到該表中。– pmdba

引用自:https://dba.stackexchange.com/questions/294179