I can not find the way to do the query to create a field in a table and a foreign key in a PostgreSQL database, but previously verifying that it does not exist. In SQL server I use the following but they do not work in PostgreSQL 9.1.
--- para un campo nuevo ------
BEGIN TRANSACTION;
IF NOT EXISTS(
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'workflowarea' AND COLUMN_NAME = 'wrko_area'
)
BEGIN
ALTER TABLE workflowarea ADD wrko_area bigint NOT NULL;
END
COMMIT TRANSACTION;
---- para llave foranea.
BEGIN TRANSACTION;
IF EXISTS
(
SELECT * FROM sys.foreign_keys WHERE name = 'workflowarea_ra_id_fk'
)
BEGIN
ALTER TABLE workflowarea DROP CONSTRAINT workflowarea_ra_id_fk;
END
COMMIT TRANSACTION;
What would be the equivalent in PostgreSQL?