risk_warning_attachment.sql 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. -- =============================================================
  2. -- 风控平台 数据库增量脚本 风险警示-附件字段
  3. -- 适用版本: 风控平台 2026-07-07 之前的部署
  4. --
  5. -- 需求:
  6. -- 风险警示发布时支持上传附件(基于 MinIO 对象存储),
  7. -- 详情页支持查看与下载附件。
  8. --
  9. -- 本脚本特征:
  10. -- - 全部 SQL 幂等,可重复执行(基于 INFORMATION_SCHEMA 判断)
  11. -- - 新环境用 risk_control_platform.sql 部署;已有环境用本脚本增量升级
  12. -- - 不修改业务表已有数据,仅追加字段
  13. -- =============================================================
  14. SET NAMES utf8mb4;
  15. -- =============================================================
  16. -- 1. 风险警示表 risk_warning 加附件字段
  17. -- =============================================================
  18. -- 1.1 attachment_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_warning'
  23. AND COLUMN_NAME = 'attachment_url') = 0,
  24. 'ALTER TABLE `risk_warning` ADD COLUMN `attachment_url` VARCHAR(500) DEFAULT NULL COMMENT ''附件访问URL(MinIO对象存储路径)'' AFTER `remark`',
  25. 'SELECT 1'));
  26. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  27. -- 1.2 attachment_name 附件原始文件名(下载时显示用)
  28. SET @sql = (SELECT IF(
  29. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  30. WHERE TABLE_SCHEMA = DATABASE()
  31. AND TABLE_NAME = 'risk_warning'
  32. AND COLUMN_NAME = 'attachment_name') = 0,
  33. 'ALTER TABLE `risk_warning` ADD COLUMN `attachment_name` VARCHAR(200) DEFAULT NULL COMMENT ''附件原始文件名'' AFTER `attachment_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_warning'
  43. -- AND COLUMN_NAME IN ('attachment_url', 'attachment_name');