incremental_add_archive_only.sql 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. -- ============================================
  2. -- 增量扩改动议脚本(仅创建新表和新视图)
  3. -- 适用场景:主表字段已存在,只需补充归档表
  4. -- ============================================
  5. -- ====================================================
  6. -- 1. 创建投诉工单归档表(如果不存在)
  7. -- ====================================================
  8. DROP TABLE IF EXISTS complaint_archive;
  9. CREATE TABLE complaint_archive (
  10. id BIGINT NOT NULL IDENTITY(1,1),
  11. complaint_no VARCHAR(32) NOT NULL,
  12. openid VARCHAR(64) DEFAULT '',
  13. name VARCHAR(30) DEFAULT '',
  14. phone VARCHAR(11) DEFAULT '',
  15. "identity" VARCHAR(10) DEFAULT '',
  16. city VARCHAR(30) DEFAULT '',
  17. district VARCHAR(30) DEFAULT '',
  18. unit_uid VARCHAR(64) DEFAULT '',
  19. school_name VARCHAR(100) DEFAULT '',
  20. school_type VARCHAR(20) DEFAULT '',
  21. category VARCHAR(30) DEFAULT '',
  22. content VARCHAR(1000) DEFAULT '',
  23. images VARCHAR(2000) DEFAULT '',
  24. status TINYINT DEFAULT 2,
  25. investigation VARCHAR(2000) DEFAULT '',
  26. conclusion VARCHAR(2000) DEFAULT '',
  27. process_images VARCHAR(2000) DEFAULT '',
  28. reject_reason VARCHAR(1000) DEFAULT '',
  29. accept_time TIMESTAMP,
  30. close_time TIMESTAMP,
  31. create_by VARCHAR(64) DEFAULT '',
  32. create_time TIMESTAMP,
  33. update_by VARCHAR(64) DEFAULT '',
  34. update_time TIMESTAMP,
  35. remark VARCHAR(500) DEFAULT '',
  36. original_submit_time TIMESTAMP NOT NULL,
  37. archive_time TIMESTAMP NOT NULL,
  38. PRIMARY KEY (id)
  39. );
  40. COMMENT ON TABLE complaint_archive IS '投诉工单归档表(T+90 天自动迁移)';
  41. COMMENT ON COLUMN complaint_archive.original_submit_time IS '原始提交时间(查询优化用)';
  42. COMMENT ON COLUMN complaint_archive.archive_time IS '归档操作时间';
  43. -- 索引优化
  44. CREATE INDEX idx_archive_no ON complaint_archive (complaint_no);
  45. CREATE INDEX idx_archive_unit ON complaint_archive (unit_uid);
  46. CREATE INDEX idx_archive_status ON complaint_archive (status);
  47. CREATE INDEX idx_archive_create ON complaint_archive (original_submit_time);
  48. -- ====================================================
  49. -- 2. 重复检测辅助视图
  50. -- ====================================================
  51. DROP VIEW IF EXISTS v_recent_complaints;
  52. CREATE VIEW v_recent_complaints AS
  53. SELECT
  54. phone,
  55. unit_uid,
  56. LEFT(content, 50) AS content_snippet,
  57. create_time,
  58. complaint_no
  59. FROM complaint_workorder
  60. WHERE create_time >= ADD_MONTHS(CURRENT_DATE, -1);
  61. COMMIT;