ALTER TABLE test ADD CONSTRAINT type_con CHECK ( CASE type WHEN 'XYZ' THEN blah IS NOT NULL AND bleh IS NOT NULL TRUE WHEN 'ABC' THEN foo IS NOT NULL AND bar IS NOT NULL TRUE WHEN 'MEH' THEN TRUE ELSE FALSE END );