Re: Conditionally altering tables

Поиск
Список
Период
Сортировка
От Mike G.
Тема Re: Conditionally altering tables
Дата
Msg-id 20050111034653.GA22284@thegodshalls.thegodshalls
обсуждение исходный текст
Ответ на Conditionally altering tables  (Colin McGuigan <cmcguigan@earthcomber.com>)
Ответы Re: Conditionally altering tables  (Colin McGuigan <cmcguigan@earthcomber.com>)
Список pgsql-novice
Yes,

Query pg_attribute table / catalog to see if it exists.

See http://www.postgresql.org/docs/7.4/interactive/catalog-pg-attribute.html

HTH

Mike

On Mon, Jan 10, 2005 at 05:07:23PM -0600, Colin McGuigan wrote:
> 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
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster

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

Предыдущее
От: Colin McGuigan
Дата:
Сообщение: Conditionally altering tables
Следующее
От: KÖPFERL Robert
Дата:
Сообщение: Major Problems with pg_dump