EXECUTE — 执行一个预备语句
EXECUTEname
[ (parameter
[, ...] ) ]
描述
EXECUTE被用来执行一个之前准备好的语句。 由于预备语句只在会话期间存在,该预备语句必须在当前会话中由一个更早 执行的PREPARE语句所创建。
如果创建预备语句的PREPARE语句指定了一些参数, 必须向EXECUTE语句传递一组兼容的参数,否则会 发生错误。注意(与函数不同)预备语句无法基于其参数的类型或者数量重载。 在一个数据库会话中,预备语句的名称必须唯一。
参数
name
- 要执行的预备语句的名称。
parameter
- 给预备语句的参数的实际值。这必须是一个能得到与该参数数据类型( 在预备语句创建时决定)兼容的值的表达式。
输出
EXECUTE返回的命令标签是预备语句的命令标签而不是EXECUTE。
兼容性
SQL 标准包括了一个EXECUTE
语句, 但是只被用于嵌入式 SQL。这个版本的 EXECUTE
语句也用了一种有点不同的语法。
2、批量替换
- CREATE
- OR REPLACE FUNCTION pg_temp.testfunc () RETURNS TEXT AS $$ DECLARE
- v1 VARCHAR;
- v2 VARCHAR := ‘information_schema’;
- v3 VARCHAR := ‘pg_catalog’;
- BEGIN
- FOR v1 IN ( SELECT DISTINCT table_schema FROM information_schema.COLUMNS )
- loop
- IF
- v1 <> v2
- AND v1 <> v3 THEN
- EXECUTE format ( ‘ALTER table “%I”.表名 rename 旧列名 to 新列名’, v1 );
- END IF;
- END loop;
- RETURN NULL;
- END;
- $$ LANGUAGE plpgsql;
- SELECT
- pg_temp.testfunc ()
本文链接地址: psql 多 schema 更新表结构