Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
postgresql-如何使用游标或select语句生成多个DML语句_Postgresql_Postgresql 9.3 - Fatal编程技术网

postgresql-如何使用游标或select语句生成多个DML语句

postgresql-如何使用游标或select语句生成多个DML语句,postgresql,postgresql-9.3,Postgresql,Postgresql 9.3,postgres的新手,我正在使用Postgresql 9.3。postgresql有没有办法生成包含多个DML语句的文件 例如,我想在tablename中选择tablename,比如“u foo%”,然后将所有这些表重命名为“u bar%”。我是否需要在光标中执行此操作,还是可以在select语句中执行此操作?(就像甲骨文) 我想把它们打印到一个.sql文件中 如果可能,请提供一个基本示例。谢谢。您可以使用psql和系统视图。将输出设置为未对齐模式: \a 将输出设置为仅显示行: \t on

postgres的新手,我正在使用Postgresql 9.3。postgresql有没有办法生成包含多个DML语句的文件

例如,我想在tablename中选择tablename,比如
“u foo%”
,然后将所有这些表重命名为
“u bar%”
。我是否需要在光标中执行此操作,还是可以在select语句中执行此操作?(就像甲骨文)

我想把它们打印到一个.sql文件中

如果可能,请提供一个基本示例。谢谢。

您可以使用psql和系统视图。将输出设置为未对齐模式:

\a
将输出设置为仅显示行:

\t on
将输出发送到您的文件:

\o yourfile.sql
运行查询:

SELECT 'ALTER TABLE RENAME ' || tablename || ' TO ' ||
  REGEXP_REPLACE ( tablename, '_foo$', '_bar' ) || ';'
FROM pg_tables
WHERE tablename LIKE '%_foo';
关闭文件:

\o
和/或关闭psql:

\q

完美的这就是我想要的。谢谢
\q