-- 离线待下发指令(设备上线后自动执行 FUNCTION_GET 等) -- 执行:在目标库中运行本脚本一次 CREATE TABLE IF NOT EXISTS `iot_device_deferred_command` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `serial_number` varchar(64) NOT NULL COMMENT '设备编号', `topic_name` varchar(255) NOT NULL COMMENT '原始 topic,如 /function/get', `message_hex` varchar(8192) DEFAULT NULL COMMENT '下发内容(十六进制字符串)', `data_type` varchar(32) DEFAULT NULL COMMENT '数据类型,如 hex', `task_type` tinyint NOT NULL DEFAULT '1' COMMENT '任务类型:1=FUNCTION_GET', `status` tinyint NOT NULL DEFAULT '0' COMMENT '0=待执行 1=执行中 2=成功 3=失败', `payload_hash` varchar(64) NOT NULL COMMENT '去重哈希', `err_msg` varchar(512) DEFAULT NULL COMMENT '失败原因', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `expire_time` datetime DEFAULT NULL COMMENT '过期时间', `dispatch_time` datetime DEFAULT NULL COMMENT '实际下发时间', PRIMARY KEY (`id`), KEY `idx_serial_status` (`serial_number`,`status`), KEY `idx_serial_hash_pending` (`serial_number`,`payload_hash`,`status`,`expire_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='设备离线待下发指令';