risk_special_equipment_nameplate.sql 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. -- =============================================================
  2. -- 风控平台 数据库增量脚本 特种设备-设备铭牌照片字段
  3. -- 适用版本: 风控平台 2026-07-07 之前的部署
  4. --
  5. -- 需求:
  6. -- 新增特种设备时必须上传设备铭牌照片(基于 MinIO 对象存储),
  7. -- 支持 JPG/PNG 格式,单个文件不超过 5MB。
  8. --
  9. -- 本脚本特征:
  10. -- - 全部 SQL 幂等,可重复执行(基于 INFORMATION_SCHEMA 判断)
  11. -- - 新环境用 risk_control_platform.sql 部署;已有环境用本脚本增量升级
  12. -- - 不修改业务表已有数据,仅追加字段
  13. -- =============================================================
  14. SET NAMES utf8mb4;
  15. -- =============================================================
  16. -- 1. 特种设备表 risk_special_equipment 加设备铭牌照片字段
  17. -- =============================================================
  18. -- 1.1 nameplate_url 设备铭牌照片 URL(MinIO public 桶路径)
  19. SET @sql = (SELECT IF(
  20. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  21. WHERE TABLE_SCHEMA = DATABASE()
  22. AND TABLE_NAME = 'risk_special_equipment'
  23. AND COLUMN_NAME = 'nameplate_url') = 0,
  24. 'ALTER TABLE `risk_special_equipment` ADD COLUMN `nameplate_url` VARCHAR(500) DEFAULT NULL COMMENT ''设备铭牌照片URL(MinIO对象存储路径,新增设备必填)'' AFTER `photo_list`',
  25. 'SELECT 1'));
  26. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  27. -- 1.2 nameplate_name 设备铭牌照片原始文件名(下载时显示用)
  28. SET @sql = (SELECT IF(
  29. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  30. WHERE TABLE_SCHEMA = DATABASE()
  31. AND TABLE_NAME = 'risk_special_equipment'
  32. AND COLUMN_NAME = 'nameplate_name') = 0,
  33. 'ALTER TABLE `risk_special_equipment` ADD COLUMN `nameplate_name` VARCHAR(200) DEFAULT NULL COMMENT ''设备铭牌照片原始文件名'' AFTER `nameplate_url`',
  34. 'SELECT 1'));
  35. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  36. -- =============================================================
  37. -- 2. 验证清单(可手动 SELECT 确认)
  38. -- =============================================================
  39. -- SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT
  40. -- FROM INFORMATION_SCHEMA.COLUMNS
  41. -- WHERE TABLE_SCHEMA = DATABASE()
  42. -- AND TABLE_NAME = 'risk_special_equipment'
  43. -- AND COLUMN_NAME IN ('nameplate_url', 'nameplate_name');