| From: | Colin McGuigan <cmcguigan(at)earthcomber(dot)com> | 
|---|---|
| To: | pgsql-novice(at)postgresql(dot)org | 
| Subject: | Conditionally altering tables | 
| Date: | 2005-01-10 23:07:23 | 
| Message-ID: | 41E30AAB.7020406@earthcomber.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | 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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Mike G. | 2005-01-11 03:46:53 | Re: Conditionally altering tables | 
| Previous Message | Michael Fuhr | 2005-01-10 20:06:14 | Re: index problem |