Conditionally altering tables - Mailing list pgsql-novice

From Colin McGuigan
Subject Conditionally altering tables
Date
Msg-id 41E30AAB.7020406@earthcomber.com
Whole thread Raw
Responses Re: Conditionally altering tables
List 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 by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: index problem
Next
From: "Mike G."
Date:
Subject: Re: Conditionally altering tables