-- ====================================================== -- 修复:t_alarm_report 表检查约束问题 -- 日期:2026-06-26 -- 说明:修复 alarm_source、alarm_level 等字段的检查约束,使其与前端数据一致 -- ====================================================== -- 1. 删除旧的 alarm_source 检查约束(如果存在) ALTER TABLE t_alarm_report DROP CONSTRAINT IF EXISTS t_alarm_report_alarm_source_check; -- 2. 删除 alarm_level 检查约束(如果存在),允许为 null ALTER TABLE t_alarm_report DROP CONSTRAINT IF EXISTS t_alarm_report_alarm_level_check; -- 3. 删除 report_type 检查约束(如果存在) ALTER TABLE t_alarm_report DROP CONSTRAINT IF EXISTS t_alarm_report_report_type_check; -- 4. 删除 evidence_complete 检查约束(如果存在) ALTER TABLE t_alarm_report DROP CONSTRAINT IF EXISTS t_alarm_report_evidence_complete_check; -- 5. 删除 is_first_alarm 检查约束(如果存在) ALTER TABLE t_alarm_report DROP CONSTRAINT IF EXISTS t_alarm_report_is_first_alarm_check; -- 6. 删除 is_enterprise 检查约束(如果存在) ALTER TABLE t_alarm_report DROP CONSTRAINT IF EXISTS t_alarm_report_is_enterprise_check; -- 7. 更新现有数据的 alarm_source(确保所有数据符合新约束) UPDATE t_alarm_report SET alarm_source = 'system_register' WHERE alarm_source NOT IN ('110_transfer', 'system_register') OR alarm_source IS NULL; -- 8. 重新添加 alarm_source 检查约束(只允许两个值) ALTER TABLE t_alarm_report ADD CONSTRAINT t_alarm_report_alarm_source_check CHECK (alarm_source IN ('110_transfer', 'system_register'));