Написание скриптов для PostgreSQL для обновления базы данных? - PullRequest
0 голосов
/ 13 марта 2012

Мне нужно написать скрипт обновления, который будет проверять, существуют ли определенные таблицы, индексы и т. Д. В базе данных, и, если нет, создавать их. Мне не удалось понять, как выполнять эти проверки, так как я продолжаю получать Syntax Error at IF сообщения, когда я набираю их в окне запроса в PgAdmin.

Нужно ли что-то делать, например, написать хранимую процедуру в публичной схеме, которая выполняет эти обновления с использованием Pl / pgSQL, и выполнить ее для выполнения обновлений? Надеюсь, я могу просто написать скрипт, который я могу запустить без создания дополнительных объектов базы данных, чтобы выполнить работу.

Ответы [ 2 ]

3 голосов
/ 13 марта 2012

Если вы используете PostgreSQL 9.1, вы можете использовать CREATE TABLE ... IF NOT EXISTS

На 9.0 вы можете заключить код состояния IF в блок DO: http://www.postgresql.org/docs/current/static/sql-do.html

Для чего-либо до этого вам нужно написать функцию для достижения того, чего вы хотите.

1 голос
/ 13 марта 2012

Вы изучили pg_tables ?

select * from pg_tables;

Это вернет (среди прочего) схемы и таблицы, которые существуют в базе данных.Не зная больше о том, что вы ищете, это кажется разумным местом для начала.

...