-- Remove invalid record types before applying constraint DELETE FROM dns_records WHERE record_type NOT IN ('A', 'AAAA', 'CNAME', 'TXT'); -- Now apply the constraint -- MySQL doesn't support DROP CONSTRAINT syntax for CHECK constraints -- ALTER TABLE dns_records DROP CONSTRAINT dns_records_record_type_check; -- MySQL doesn't support table-level CHECK constraints, using trigger instead -- Remove DELIMITER commands for compatibility with migration tools -- Create trigger for insert without DELIMITER CREATE TRIGGER check_record_type_before_insert BEFORE INSERT ON dns_records FOR EACH ROW IF NEW.record_type NOT IN ('A', 'AAAA', 'CNAME', 'TXT') THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid record type'; END IF; -- Create trigger for update without DELIMITER CREATE TRIGGER check_record_type_before_update BEFORE UPDATE ON dns_records FOR EACH ROW IF NEW.record_type NOT IN ('A', 'AAAA', 'CNAME', 'TXT') THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid record type'; END IF;