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
|
Список | 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 по дате отправления: