-- ===================================================== -- 雪花算法ID改造 - 数据库表结构变更脚本 -- 执行时间: 请在低峰期执行 -- 影响范围: 54张表的主键ID字段 -- ===================================================== -- 说明: -- 1. 将所有表的id字段从 AUTO_INCREMENT 改为普通 BIGINT -- 2. 雪花算法ID由MyBatis-Plus在应用层生成,不再依赖数据库自增 -- 3. 执行前请务必备份数据库! -- 核心业务表 ALTER TABLE t_user MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_order MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_order_item MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_order_goods MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_product MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_device MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_shop MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_device_inventory MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_account MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_fund_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; -- 营销相关表 ALTER TABLE t_marketing_activity MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_coupon_template MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_user_coupon MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_coupon_product MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_coupon_shop MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_coupon_distribute MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_timed_discount_activity MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_timed_discount_device MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_timed_discount_product MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_timed_discount_shop MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_timed_discount_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_timed_discount_statistics MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_activity_device MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_activity_product MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_activity_shop MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; -- 库存相关表 ALTER TABLE t_stock_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_stock_record_item MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_inventory_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_stocker MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; -- 注意: t_shop_replenisher 表已被 V2 独立补货员体系取代,即将 DROP -- ALTER TABLE t_shop_replenisher MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; -- 日志记录表 ALTER TABLE t_operation_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_door_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_sync_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_sync_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_dict_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_price_adjustment_log MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_new_product_apply MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_checkin_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; -- 系统管理表 ALTER TABLE t_admin MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_role MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_data_permission MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_role_permission MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_dict_type MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_dict_data MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; -- 邀请相关表 ALTER TABLE t_invite_activity MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_invite_record MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_invite_reward MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; -- 统计表 ALTER TABLE t_marketing_statistics MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_stat_category_daily MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_stat_device_daily MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_stat_product_daily MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_stat_shop_daily MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; ALTER TABLE t_stat_user_repurchase MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; -- 其他表 ALTER TABLE t_announcement MODIFY COLUMN id BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)'; -- ===================================================== -- 验证SQL - 执行后可运行以下SQL确认修改成功 -- ===================================================== -- 检查是否还有AUTO_INCREMENT的id字段(应该返回0条记录) SELECT TABLE_NAME, COLUMN_NAME, EXTRA FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'haha' AND COLUMN_NAME = 'id' AND EXTRA = 'auto_increment'; -- 查看所有表的id字段类型(应该都是bigint且没有auto_increment) SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, EXTRA, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'haha' AND COLUMN_NAME = 'id' ORDER BY TABLE_NAME; -- ===================================================== -- 回滚SQL - 如需回滚,可执行以下SQL恢复AUTO_INCREMENT -- ===================================================== -- 回滚示例(以t_user为例): -- ALTER TABLE t_user MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID'; -- 批量生成回滚SQL: -- SELECT CONCAT( -- 'ALTER TABLE ', TABLE_NAME, -- ' MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT COMMENT ''', COLUMN_COMMENT, ''';' -- ) AS rollback_sql -- FROM information_schema.COLUMNS -- WHERE TABLE_SCHEMA = 'haha' -- AND COLUMN_NAME = 'id' -- AND EXTRA = '';