Conditionally altering tables

Поиск
Список
Период
Сортировка
От Colin McGuigan
Тема Conditionally altering tables
Дата
Msg-id 41E30AAB.7020406@earthcomber.com
обсуждение исходный текст
Ответы Re: Conditionally altering tables  ("Mike G." <mike@thegodshalls.com>)
Список pgsql-novice
Coming from Microsoft SQL Server here...

Is there a way to write a script so that it will make required schema
changes, only if they haven't already been done?

Eg, I have a script that should add a NewField field to MyTable, as so:

ALTER TABLE MyTable ADD COLUMN NewField integer NULL

This works fine the first time it runs, but if I run this script against
the database again, I get a message saying that NewField already exists,
and the script errors out.  In MSSQL, I could write something like:

IF NOT EXISTS (SELECT * FROM sysobjects so INNER JOIN syscolumns sc ON
so.id = sc.id WHERE so.Name = 'MyTable' and sc.Name = 'NewField) ALTER
TABLE MyTable ADD COLUMN NewField integer NULL

And it would be fine.  Is there something similar I could do in Postgres
without having to write individual stored procedures for each one?

--Colin McGuigan

В списке pgsql-novice по дате отправления:

Предыдущее
От: Michael Fuhr
Дата:
Сообщение: Re: index problem
Следующее
От: "Mike G."
Дата:
Сообщение: Re: Conditionally altering tables