我有一个包含许多表的数据库,这些表用作其他表中有效值的参考。这些引用表都已命名valid[table],因此我可以使用 .psql 在 psql 中显示它们\dt valid*。
我希望能够选择所有非引用表(它们的命名更加多样,但没有一个以 开头valid),但无法弄清楚如何。我尝试过各种方法,例如\dt !valid*、\dt !~valid*、\dt NOT LIKE 'valid%',但这些要么出错,要么找不到匹配项。
任何建议,将不胜感激!
根据手册,psql支持这些模式。通常,您可以使用正则表达式负向先行(?!valid)*,但?不能在正则表达式 with 中使用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%';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2315 次 |
| 最近记录: |