我有一个包含许多表的数据库,这些表用作其他表中有效值的引用。这些引用表都名为valid[table]
,因此我可以使用\dt valid*
在psql中显示它们。
我希望能够选择所有非 - 参考表(名称更加可变,但它们都不以valid
开头),但可以&# 39;弄清楚如何。我尝试了\dt !valid*
,\dt !~valid*
,\dt NOT LIKE 'valid%'
等各种内容,但这些错误或者找不到匹配项。
任何建议都将不胜感激!
答案 0 :(得分:2)
根据手册,psql
支持these patterns。通常,您可以使用正则表达式否定前瞻(?!valid)*
,但?
不能在psql
的正则表达式中使用,因为它已转换为.
。从INFROMATION SCHEMA
执行查询可能更容易:
SELECT table_name FROM information_schema.tables
WHERE table_schema NOT IN ('pg_catalog', 'information_schema') --exclude system tables
AND table_type = 'BASE TABLE' -- only tables
AND table_name NOT LIKE 'valid%';