SELECT table_name --seleccionamos solo la columna del nombre de la tabla
FROM information_schema.tables --seleccionamos la información del esquema
WHERE table_schema='public' --las tablas se encuentran en el esquema publico
AND table_type='BASE TABLE'; --tiene que ser del tipo table ya que aqui se listan tambien las vistas
DO
$$
DECLARE
_schema text;
_table text;
BEGIN
FOR _schema, _table IN
SELECT table_schema, table_name
FROM information_schema.tables
-- No filtro por esquema 'public' porque yo uso muchos más esquemas
WHERE table_type = 'BASE TABLE'
LOOP
-- En este bloque LOOP puedes introducir tu código para hacer lo que quieras
-- con las tablas
-- Usando las variables _schema, _table
RAISE NOTICE 'Código a ejecutar con %, %', _schema, _table;
END LOOP;
END
$$
;
根据有关数据库模式信息的官方 PostgreSQL 文档,可以做的是查阅存储在其中的表的信息,
information_schema
因为在其中有一个名为的表tables
,其中可以找到组成数据库的每个表的名称。 . 查询如下:通过这种方式,将获得组成数据库的表的名称,生成可以在某些编程语言中迭代的结果。
另一个非常有用且经过验证的选择;我和你有同样的疑问。
或者可能
归功于https://stackoverflow.com/questions/769683/show-tables-in-postgresql
具体来说,如果您要查找的是对这些表执行任何自发操作的过程,我通常会以非常简单的结构即时构建脚本,并且不需要创建函数、执行它然后删除它。
使用 Juan Pinzón 的查询,脚本如下: