alter_snowflake_id.sql 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. -- =====================================================
  2. -- 雪花算法ID改造 - 数据库表结构变更脚本
  3. -- 执行时间: 请在低峰期执行
  4. -- 影响范围: 54张表的主键ID字段
  5. -- =====================================================
  6. -- 说明:
  7. -- 1. 将所有表的id字段从 AUTO_INCREMENT 改为普通 BIGINT
  8. -- 2. 雪花算法ID由MyBatis-Plus在应用层生成,不再依赖数据库自增
  9. -- 3. 执行前请务必备份数据库!
  10. -- 核心业务表
  11. ALTER TABLE t_user MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  12. ALTER TABLE t_order MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  13. ALTER TABLE t_order_item MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  14. ALTER TABLE t_order_goods MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  15. ALTER TABLE t_product MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  16. ALTER TABLE t_device MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  17. ALTER TABLE t_shop MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  18. ALTER TABLE t_device_inventory MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  19. ALTER TABLE t_account MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  20. ALTER TABLE t_fund_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  21. -- 营销相关表
  22. ALTER TABLE t_marketing_activity MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  23. ALTER TABLE t_coupon_template MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  24. ALTER TABLE t_user_coupon MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  25. ALTER TABLE t_coupon_product MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  26. ALTER TABLE t_coupon_shop MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  27. ALTER TABLE t_coupon_distribute MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  28. ALTER TABLE t_timed_discount_activity MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  29. ALTER TABLE t_timed_discount_device MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  30. ALTER TABLE t_timed_discount_product MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  31. ALTER TABLE t_timed_discount_shop MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  32. ALTER TABLE t_timed_discount_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  33. ALTER TABLE t_timed_discount_statistics MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  34. ALTER TABLE t_activity_device MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  35. ALTER TABLE t_activity_product MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  36. ALTER TABLE t_activity_shop MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  37. -- 库存相关表
  38. ALTER TABLE t_stock_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  39. ALTER TABLE t_stock_record_item MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  40. ALTER TABLE t_inventory_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  41. ALTER TABLE t_stocker MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  42. -- 注意: t_shop_replenisher 表已被 V2 独立补货员体系取代,即将 DROP
  43. -- ALTER TABLE t_shop_replenisher MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  44. -- 日志记录表
  45. ALTER TABLE t_operation_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  46. ALTER TABLE t_door_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  47. ALTER TABLE t_sync_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  48. ALTER TABLE t_sync_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  49. ALTER TABLE t_dict_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  50. ALTER TABLE t_price_adjustment_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  51. ALTER TABLE t_new_product_apply MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  52. ALTER TABLE t_checkin_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  53. -- 系统管理表
  54. ALTER TABLE t_admin MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  55. ALTER TABLE t_role MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  56. ALTER TABLE t_data_permission MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  57. ALTER TABLE t_role_permission MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  58. ALTER TABLE t_dict_type MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  59. ALTER TABLE t_dict_data MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  60. -- 邀请相关表
  61. ALTER TABLE t_invite_activity MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  62. ALTER TABLE t_invite_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  63. ALTER TABLE t_invite_reward MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  64. -- 统计表
  65. ALTER TABLE t_marketing_statistics MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  66. ALTER TABLE t_stat_category_daily MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  67. ALTER TABLE t_stat_device_daily MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  68. ALTER TABLE t_stat_product_daily MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  69. ALTER TABLE t_stat_shop_daily MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  70. ALTER TABLE t_stat_user_repurchase MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  71. -- 其他表
  72. ALTER TABLE t_announcement MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)';
  73. -- =====================================================
  74. -- 验证SQL - 执行后可运行以下SQL确认修改成功
  75. -- =====================================================
  76. -- 检查是否还有AUTO_INCREMENT的id字段(应该返回0条记录)
  77. SELECT TABLE_NAME, COLUMN_NAME, EXTRA
  78. FROM information_schema.COLUMNS
  79. WHERE TABLE_SCHEMA = 'haha'
  80. AND COLUMN_NAME = 'id'
  81. AND EXTRA = 'auto_increment';
  82. -- 查看所有表的id字段类型(应该都是bigint且没有auto_increment)
  83. SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, EXTRA, COLUMN_COMMENT
  84. FROM information_schema.COLUMNS
  85. WHERE TABLE_SCHEMA = 'haha'
  86. AND COLUMN_NAME = 'id'
  87. ORDER BY TABLE_NAME;
  88. -- =====================================================
  89. -- 回滚SQL - 如需回滚,可执行以下SQL恢复AUTO_INCREMENT
  90. -- =====================================================
  91. -- 回滚示例(以t_user为例):
  92. -- ALTER TABLE t_user MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID';
  93. -- 批量生成回滚SQL:
  94. -- SELECT CONCAT(
  95. -- 'ALTER TABLE ', TABLE_NAME,
  96. -- ' MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT COMMENT ''', COLUMN_COMMENT, ''';'
  97. -- ) AS rollback_sql
  98. -- FROM information_schema.COLUMNS
  99. -- WHERE TABLE_SCHEMA = 'haha'
  100. -- AND COLUMN_NAME = 'id'
  101. -- AND EXTRA = '';