psql 多 schema 更新表结构

EXECUTE — 执行一个预备语句

EXECUTE name [ ( parameter [, ...] ) ]

描述

EXECUTE被用来执行一个之前准备好的语句。 由于预备语句只在会话期间存在,该预备语句必须在当前会话中由一个更早 执行的PREPARE语句所创建。

如果创建预备语句的PREPARE语句指定了一些参数, 必须向EXECUTE语句传递一组兼容的参数,否则会 发生错误。注意(与函数不同)预备语句无法基于其参数的类型或者数量重载。 在一个数据库会话中,预备语句的名称必须唯一。

参数

name
要执行的预备语句的名称。
parameter
给预备语句的参数的实际值。这必须是一个能得到与该参数数据类型( 在预备语句创建时决定)兼容的值的表达式。

输出

EXECUTE返回的命令标签是预备语句的命令标签而不是EXECUTE。

兼容性

SQL 标准包括了一个EXECUTE语句, 但是只被用于嵌入式 SQL。这个版本的 EXECUTE语句也用了一种有点不同的语法。

1、查询模式列表
2、批量替换
  1. CREATE
  2.   OR REPLACE FUNCTION pg_temp.testfunc () RETURNS TEXT AS $$ DECLARE
  3.   v1 VARCHAR;
  4. v2 VARCHAR := ‘information_schema’;
  5. v3 VARCHAR := ‘pg_catalog’;
  6. BEGIN
  7.     FOR v1 IN ( SELECT DISTINCT table_schema FROM information_schema.COLUMNS )
  8.     loop
  9.   IF
  10.     v1 <> v2
  11.     AND v1 <> v3 THEN
  12.     EXECUTE format ( ‘ALTER table “%I”.表名 rename 旧列名 to 新列名’, v1 );
  13.   END IF;
  14. END loop;
  15. RETURN NULL;
  16. END;
  17. $$ LANGUAGE plpgsql;
  18. SELECT
  19.   pg_temp.testfunc ()

本文链接地址: psql 多 schema 更新表结构

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注