有意見欄:
COMMENT ON TABLE my_table IS 'Yup, it's a table';
在當前版本的註釋字段僅限於一個單一的文本字符串。有關允許複合類型或記錄的討論,但AFAIK沒有就任何可行的設計達成一致。
如果需要,您可以將JSON插入註釋中。這有點骯髒,因爲它會顯示爲Description
列中的\d+
輸出在psql
等,但它會工作。
craig=> COMMENT ON TABLE test IS 'Some table';
COMMENT
craig=> \d+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+----------------------+----------+-------+------------+-------------
public | test | table | craig | 8192 bytes | Some table
您可以從SQL獲得評論有:
SELECT pg_catalog.obj_description('test'::regclass, 'pg_class');
註釋也可以對其他對象添加,像列,數據類型,函數等
如果那並不是」 t滿足您的需求,您幾乎堅持使用元數據的邊桌。
人們經常要求創建時間等表格元數據,但沒有人會傾向於提出一個可行的實施計劃以及將時間和熱情貫徹到終點的熱情。在任何情況下,最常見的請求是「最後修改時間」,從性能的角度來看這是非常可怕的,並且在多版本併發控制,事務隔離規則等方面很難得到正確的結果。
哇,感謝超詳細的迴應。我猜COMMENT可以用於描述目的。我想我也可以在那裏插入一個時間戳,然後將其用於「表創建時間」。我沒有得到最後修改的東西的全部想法...我認爲,每個表中有一個字段,其創建/修改的時間戳以及基於該字段的順序應該足夠了...... Altough不是很好有效,如果不是顯然需要...感謝克雷格!很好的答案! – AlejandroVK
@AjjandroVK隨着「最後修改」的問題 - 通常人們想查看哪些表有最近的變化,而不必掃描表堆。我也不是很明白,但這似乎是一個普遍的要求。 –
我想到的另一個用例是讓應用程序代碼將相關狀態存儲在表上。例如。我正在使用存儲事件的表格。應用程序按照他們的意願處理這個事件流,所以如果他們能夠直接在表上存儲他們上一次處理事件的id/timestamp,那將會很不錯。 – sthzg