编写PostgreSQL脚本来更新数据库?

时间:2012-03-12 21:27:24

标签: postgresql versioning

我需要编写一个更新脚本来检查数据库中是否存在某些表,索引等,如果没有,则创建它们。我一直无法弄清楚如何进行这些检查,因为当我在PgAdmin的查询窗口中输入Syntax Error at IF消息时,我会不断收到这些消息。

我是否必须做一些事情,比如在使用Pl / pgSQL执行这些更新的公共模式中编写存储过程并执行它来进行更新?希望我能编写一个可以运行的脚本,而无需创建额外的数据库对象来完成工作。

2 个答案:

答案 0 :(得分:3)

如果您使用的是PostgreSQL 9.1,则可以使用CREATE TABLE ... IF NOT EXISTS

在9.0上,您可以将IF条件代码包装到DO块中:http://www.postgresql.org/docs/current/static/sql-do.html

对于之前的任何事情,你必须编写一个函数来实现你想要的东西。

答案 1 :(得分:1)

你有没有看过pg_tables

select * from pg_tables;

这将返回(除其他外)数据库中存在的模式和表。如果你不了解更多你想要的东西,这似乎是一个合理的起点。