【发布时间】:2013-06-11 04:00:30
【问题描述】:
我有一个庞大的数据库,我不介意离开搜索一段时间,但由于各种原因我无法转储整个数据库。我可以编写的最简单的查询是什么,它将在数据库中所有表的所有字段中搜索特定的文本字符串?
以下内容不起作用,但应该展示我希望看到的内容:
SELECT * FROM * where * like '%mystring%'
有什么想法吗?
【问题讨论】:
-
为什么要这样做?我想不出一个场景。
-
我通常通过搜索转储来做到这一点(使用
grep或vim)。很有可能,如果您不允许转储数据库,也不允许您读取所有表... -
理论上你可以使用 PL/PgSQL 的
EXECUTE、format语句和针对pg_catalog.pg_class、pg_catalog.pg_attribute等的一些复杂查询来做到这一点。这将是一个主要的痛苦做,缓慢,而且通常很糟糕;我无法想象你为什么要这样做。
标签: postgresql