在sql脚本中循环以创建模式

时间:2015-01-29 12:21:27

标签: sql postgresql

我想在PostgreSQL中创建一堆重复的模式。模式将具有相同的内容但名称不同。我想让命令在脚本中执行此操作,以便我可以在测试时删除和重建。我想从命令行安装模式:psql -f script.sql dbname

由于我正在创建许多重复的模式,我认为script.sql中的循环将是执行此操作的最佳方式。我可以使用带有模式名称的循环迭代器变量来确保每个重复的模式具有不同的名称。

根据我的阅读,循环必须存在于函数中。如果是这种情况,我应该在script.sql中定义一个函数,然后在定义之后调用该函数吗?我担心的是,这个实用程序函数最终将作为数据库的一部分。是这样的吗?例如。您在脚本中定义的函数是否是脚本创建的数据库的一部分?有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

在脚本中,您可以使用DO命令使用任何可用语言编写anonymous code block。块被执行一次然后被丢弃。 PL / pgSQL语言中的存根(默认语言):

DO $$
DECLARE
  -- Local variables go here
BEGIN
  -- Your code goes here
END; $$ LANGUAGE plpgsql;