PostgreSQL文件中的占位符

PostgreSQL文件中的占位符,postgresql,Postgresql,我有多个以相同方式创建的表(相同的列、索引等) 我希望有一个sql文件来创建它们,而不复制create语句 有没有一种方法可以在sql文件中使用某种占位符,当使用参数执行sql文件时,这些占位符将被替换 例如,我希望有以下sql语句: drop table if exists schema.%PLACEHOLDER%; create table schema.%PLACEHOLDER%(id text, data text); 并使用以下命令执行该脚本: psql -f mysqlfile.s

我有多个以相同方式创建的表(相同的列、索引等) 我希望有一个sql文件来创建它们,而不复制create语句

有没有一种方法可以在sql文件中使用某种占位符,当使用参数执行sql文件时,这些占位符将被替换

例如,我希望有以下sql语句:

drop table if exists schema.%PLACEHOLDER%;
create table schema.%PLACEHOLDER%(id text, data text);
并使用以下命令执行该脚本:

psql -f mysqlfile.sql -magic_parameter my_desired_table_name

在执行PostgreSQL文件时,这是可能的,还是可能以其他方式实现同样的效果(使用sed除外)?

如果您使用的是
psql
,则可以按如下方式使用变量:

drop table if exists schema.:placeholder;
调用是:

psql -f mysqlfile.sql -v placeholder=table_name
可能重复的