-- 通用资源退役,只关闭未来工作并释放活动订阅名额,不删除历史或审计;禁止外键。 ALTER TABLE pulse_queues ADD retired_at DATETIME(6) NULL COMMENT '永久退役时间,UTC;NULL表示未退役,退役后禁止新工作且不可恢复', ADD CONSTRAINT ck_queue_retired CHECK (retired_at IS NULL OR paused=TRUE); ALTER TABLE orbit_subscriptions ADD retired_at DATETIME(6) NULL COMMENT '永久退役时间,UTC;NULL表示仍占用订阅名额,退役保留历史交付', ADD retired_sequence BIGINT UNSIGNED NULL COMMENT '退役事务锁定的结果流提交水位;NULL表示未退役,之后的事件不再订阅', ADD KEY ix_subscription_active(namespace_id,retired_at), ADD CONSTRAINT ck_subscription_retired CHECK ((retired_at IS NULL AND retired_sequence IS NULL) OR (retired_at IS NOT NULL AND retired_sequence IS NOT NULL AND enabled=FALSE AND pending_count=0));