20260405_fix_sessions_his_missing_columns.sql 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. -- Migration: 添加 sessions_his 表缺失的字段
  2. -- Date: 2026-04-05
  3. -- Description: 修复 sessions_his 表缺少 his_created_at 和 his_operation 字段的问题
  4. SET NAMES utf8mb4;
  5. SET FOREIGN_KEY_CHECKS = 0;
  6. -- 检查并添加 his_created_at 字段 (如果不存在)
  7. SET @column_exists = (
  8. SELECT COUNT(*)
  9. FROM information_schema.COLUMNS
  10. WHERE TABLE_SCHEMA = DATABASE()
  11. AND TABLE_NAME = 'sessions_his'
  12. AND COLUMN_NAME = 'his_created_at'
  13. );
  14. SET @sql = IF(@column_exists = 0,
  15. 'ALTER TABLE `sessions_his` ADD COLUMN `his_created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT \'历史记录创建时间\', ADD INDEX `idx_his_created_at` (`his_created_at`)',
  16. 'SELECT \'Column his_created_at already exists\' AS message'
  17. );
  18. PREPARE stmt FROM @sql;
  19. EXECUTE stmt;
  20. DEALLOCATE PREPARE stmt;
  21. -- 检查并添加 his_operation 字段 (如果不存在)
  22. SET @column_exists = (
  23. SELECT COUNT(*)
  24. FROM information_schema.COLUMNS
  25. WHERE TABLE_SCHEMA = DATABASE()
  26. AND TABLE_NAME = 'sessions_his'
  27. AND COLUMN_NAME = 'his_operation'
  28. );
  29. SET @sql = IF(@column_exists = 0,
  30. 'ALTER TABLE `sessions_his` ADD COLUMN `his_operation` varchar(10) NOT NULL COMMENT \'操作类型: INSERT/UPDATE/DELETE/RENEW\'',
  31. 'SELECT \'Column his_operation already exists\' AS message'
  32. );
  33. PREPARE stmt FROM @sql;
  34. EXECUTE stmt;
  35. DEALLOCATE PREPARE stmt;
  36. SET FOREIGN_KEY_CHECKS = 1;