CREATE TABLE IF NOT EXISTS live_callback_event ( event_id VARCHAR(256) PRIMARY KEY COMMENT '回调事件 ID', stream_name VARCHAR(128) NOT NULL COMMENT '直播流名称', event_type VARCHAR(32) NOT NULL COMMENT '回调事件类型', payload_hash CHAR(64) NOT NULL COMMENT '回调载荷哈希', received_at DATETIME NOT NULL COMMENT '接收时间', processed_at DATETIME NULL COMMENT '处理时间', KEY idx_live_callback_stream (stream_name, event_type, received_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; DELIMITER $$ DROP PROCEDURE IF EXISTS upgrade_live_callback $$ CREATE PROCEDURE upgrade_live_callback() BEGIN DECLARE item_count INT DEFAULT 0; SELECT COUNT(*) INTO item_count FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'live_session' AND column_name = 'device_streaming'; IF item_count = 0 THEN ALTER TABLE live_session ADD COLUMN device_streaming TINYINT(1) NOT NULL DEFAULT 0 COMMENT '设备是否正在推流'; END IF; SELECT COUNT(*) INTO item_count FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'live_session' AND column_name = 'cloud_online'; IF item_count = 0 THEN ALTER TABLE live_session ADD COLUMN cloud_online TINYINT(1) NOT NULL DEFAULT 0 COMMENT '云端是否在线'; END IF; SELECT COUNT(*) INTO item_count FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'live_session' AND column_name = 'cloud_checked_at'; IF item_count = 0 THEN ALTER TABLE live_session ADD COLUMN cloud_checked_at DATETIME NULL COMMENT '云端检查时间'; END IF; END $$ CALL upgrade_live_callback() $$ DROP PROCEDURE upgrade_live_callback $$ DELIMITER ;