我已經搜索了Web和PGSQL文檔,以獲取有關對我而言是隱藏數據類型的信息,但缺乏。我正在處理一個現有的數據庫,該數據庫具有帶有前兩個下劃線(__some_type)的返回類型的函數。在PGAdmin3中,您可以選擇在樹視圖中顯示類型,在那裏可以看到一些可識別的類型,這些類型在各種函數中使用,哪些不是,但哪裏都看不到這些其他類型。我通過PyCharm完整版瞭解到,我可以連接到PostgreSQL數據庫並查看我提到的所有類型。以及在帶有「\ dT」的控制檯中,但不在PGAdmin中。PGAdmin3隱藏的對象類型
問:什麼是與前面有一個或兩個下劃線類型的交易? (__some_type)。
跟帖:我發現一個未經證實的源描述限制用戶創建以下劃線開頭的類型,但具體還沒有從PG來源證實了這一點。
這裏是鏈接到:https://momjian.us/main/writings/pgsql/aw_pgsql_book/node223.html
我提線是對在「注意事項」的底部一路:
類型名不能以下劃線開頭(「_ 「)並且可以 只有31個字符長。這是因爲Postgres爲每個基本類型默認創建了一個數組類型,其名稱由 類型的名稱前面加下劃線組成。
續搜索結果: 我已經找到了我說話的引用,但它並沒有進入對這種類型的行爲,或者發生了什麼細節,如果用戶違反此「限購」。
PG源從6.3文檔:
如前所述,Postgres的完全支持基本類型的陣列。 此外,Postgres也支持用戶定義類型的數組。 當你定義一個類型時,Postgres會自動提供對該類型的 數組的支持。由於歷史原因,陣列類型的 名稱與用戶定義的類型相同,前綴爲下劃線字符_ 。複合類型不需要定義任何函數,因爲系統已經理解它們在內部看起來像什麼。
限制
類型名不能以下劃線開頭( 「_」),並可以 只能是長15個字符。這是因爲Postgres爲每個基本類型默認創建了一個數組類型,其名稱由 類型的名稱前面加下劃線組成。
我謝謝你!我最終從6.3到9.x讀了所有不同的文檔,你是對的。 –