是否有快速檢測PostgreSQL數據庫模式是否更改的方法? (是否有一個內部序列或者當PG架構操作如ALTER TABLE
運行時會增加?)?我想緩存基於模式查詢的數據,並需要失效標記。檢測PG數據庫模式(數據字典)是否已更改
一種方法是運行模式反射查詢(針對pg_class,pg_attribute和所有其他模塊)並生成一個散列,但是我想知道是否有更簡單的方法來完成相同的操作。它不需要是確切的,只是表示是時候刷新緩存並重新加載應用程序層中的模式。
澄清:這不是關於模式遷移或獲取模式差異。它只是關於緩存失效標記。這是一個簡單的標誌:「自從標誌X起模式改變了」。 (另外我不是在談論架構命名空間,而是關於數據字典又名架構(database schema)。也就是說,數據庫結構的變化。)
換言之:是否有PG版本的SQLite3 PRAGMA schema_version
。
遞增的序列並不意味着*模式更改*。只是要清楚。這是一個數據庫對象,它擁有一個當前值並且能夠生成另一個值。我認爲你需要定義*模式改變*是增加一個模式改變的索引?您指的是模式中的任何操作? –
我在詢問有關_schema_的更改,而不是關於數據庫內容更改。即ALTER TABLE,DROP TABLE,ADD COLUMN等,所有操作都會改變數據庫的結構。推測CREATE INDEX和這些屬於同一類別。 – hnh
@hhh這就是我的想法,但這讓我失望了,你能解釋一下嗎:*序列增加* –