Thread: Drop CHECK Constraint

Drop CHECK Constraint

From
Yan Cheng CHEOK
Date:
I was wondering, is there any good way to drop a constraint? Currently, I am making assumption on the check constraint
name. 

Although it works at current moment, I do not feel comfortable with it in long run.

For example :


ALTER TABLE backup_table ADD CHECK (fk_lot_id = 99);

If I want to drop the above CHECK constraint, I will do

ALTER TABLE backup_table DROP CONSTRAINT backup_table_fk_lot_id_check; (I assume the constraint name will be
backup_table_fk_lot_id_check)

Is there any more robust way?

Thanks and Regards
Yan Cheng CHEOK




Re: Drop CHECK Constraint

From
Christian Ullrich
Date:
* Yan Cheng CHEOK wrote:

> I was wondering, is there any good way to drop a constraint? Currently, I am making assumption on the check
constraintname. 

> ALTER TABLE backup_table ADD CHECK (fk_lot_id = 99);
>
> If I want to drop the above CHECK constraint, I will do
>
> ALTER TABLE backup_table DROP CONSTRAINT backup_table_fk_lot_id_check; (I assume the constraint name will be
backup_table_fk_lot_id_check)
>
> Is there any more robust way?

Name your constraints:

ALTER TABLE backup_table ADD CONSTRAINT lot_id_ck CHECK (fk_lot_id = 99)


Alternatively, you can get a list of constraints for your table from the
catalog:

SELECT conname
   FROM pg_constraint
  WHERE conrelid = 'backup_table'::regclass

You may have to add more conditions to the query.

--
Christian