数据库创建的时候只有默认id作为主键,后期想按照某个字段进行分区。默认情况下主键必须包含分区键才可以进行分区。这时候修改主键是一个比较复杂额度操作。我们可以通过一个参数进行设置。让数据服务器忽略检查分区键是否包含在主键内
在配置ENGINE=InnoDB 的后面添加 UNIQUE CHECK IGNORE=1 即可跳过检查
CREATE TABLE `demo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`updated_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
`day` date NOT NULL COMMENT '日期',
`md5` varchar(32) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uid_material_re_day_d199cd` (`day`,`md5`),
) ENGINE=InnoDB UNIQUE CHECK IGNORE=1 AUTO_INCREMENT=1014017 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
PARTITION BY RANGE COLUMNS(`day`) INTERVAL(DAY, 1)
(PARTITION _p20241214 VALUES LESS THAN ('2024-12-14') ENGINE = InnoDB,
PARTITION _p20241215 VALUES LESS THAN ('2024-12-15') ENGINE = InnoDB);
MySQL数据库分区键与主键检查跳过方法
944

被折叠的 条评论
为什么被折叠?



