From 73129121780e2f23daef5150aa18d14ed53f1668 Mon Sep 17 00:00:00 2001 From: 16337 <1633794139@qq.com> Date: Fri, 13 Feb 2026 10:46:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(aiot):=20=E6=B7=BB=E5=8A=A0camera=5Fcode?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E8=BF=81=E7=A7=BB=E8=84=9A=E6=9C=AC=20-=20?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=91=84=E5=83=8F=E5=A4=B4=E6=A0=87=E8=AF=86?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- 数据库/aiot/迁移-添加camera_code字段.sql | 45 ++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 数据库/aiot/迁移-添加camera_code字段.sql diff --git a/数据库/aiot/迁移-添加camera_code字段.sql b/数据库/aiot/迁移-添加camera_code字段.sql new file mode 100644 index 000000000..1344f8073 --- /dev/null +++ b/数据库/aiot/迁移-添加camera_code字段.sql @@ -0,0 +1,45 @@ +-- 迁移-添加camera_code字段.sql +-- 功能:为 wvp_stream_proxy 表添加 camera_code 字段作为全局唯一标识 + +-- 1. 新增 camera_code 列(允许NULL,稍后填充数据) +ALTER TABLE wvp_stream_proxy + ADD COLUMN camera_code VARCHAR(64) NULL COMMENT '摄像头全局唯一编码(格式:cam_xxxxxxxxxxxx)'; + +-- 2. 为现有数据生成 camera_code(基于 ID 生成12位哈希) +UPDATE wvp_stream_proxy + SET camera_code = CONCAT('cam_', SUBSTRING(MD5(CAST(id AS CHAR)), 1, 12)) + WHERE camera_code IS NULL OR camera_code = ''; + +-- 3. 将 camera_code 设为 NOT NULL 并添加唯一索引 +ALTER TABLE wvp_stream_proxy + MODIFY COLUMN camera_code VARCHAR(64) NOT NULL, + ADD UNIQUE KEY uk_camera_code (camera_code); + +-- 4. 验证数据完整性 +SELECT '检查重复的 camera_code' AS check_name, COUNT(*) AS issue_count +FROM ( + SELECT camera_code, COUNT(*) AS cnt + FROM wvp_stream_proxy + GROUP BY camera_code + HAVING cnt > 1 +) AS duplicates; + +-- 5. 更新 ROI 表中的 camera_id(从 app/stream 格式改为 camera_code) +UPDATE wvp_ai_roi r + INNER JOIN wvp_stream_proxy sp ON r.camera_id = CONCAT(sp.app, '/', sp.stream) + SET r.camera_id = sp.camera_code; + +-- 6. 验证 ROI 更新结果 +SELECT '检查未匹配的 ROI' AS check_name, COUNT(*) AS issue_count +FROM wvp_ai_roi r +LEFT JOIN wvp_stream_proxy sp ON r.camera_id = sp.camera_code +WHERE sp.camera_code IS NULL; + +-- 7. 显示迁移后的样本数据 +SELECT id, camera_code, app, stream, name +FROM wvp_stream_proxy +LIMIT 5; + +SELECT roi_id, camera_id, name +FROM wvp_ai_roi +LIMIT 5;