Postgresql
查詢以查找受語言環境升級影響的索引不起作用
在將系統從 Debian stretch 升級到 Debian buster 時,我收到一條關於排序規則更改的警告,其中包含指向https://wiki.postgresql.org/wiki/Locale_data_changes的連結,該數據庫目前正在執行來自 Debian stretch 的 postgresql 9.6。
該頁面告訴我,我可以找出我的數據庫中的哪些索引受到使用查詢的影響
SELECT indrelid::regclass::text, indexrelid::regclass::text, collname, pg_get_indexdef(indexrelid) FROM (SELECT indexrelid, indrelid, indcollation[i] coll FROM pg_index, generate_subscripts(indcollation, 1) g(i)) s JOIN pg_collation c ON coll=c.oid WHERE collprovider IN ('d', 'c') AND collname NOT IN ('C', 'POSIX');
但是,當我連接到我的數據庫並執行我得到的查詢時。
錯誤:列“collprovider”不存在第 4 行:WHERE collprovider IN (’d’, ‘c’) AND collname NOT IN (‘C’, ‘…
如何找出我的數據庫中的 if-any 索引受到了影響?
我在 irc 上的#postgresql 中得到了答案。
<Myon> PostgreSQL 太舊了,無法查詢
<Myon> 只需刪除“collprovider and”
從查詢中刪除“collprovider IN (’d’, ‘c’) AND”後,它執行成功。