0
点赞
收藏
分享

微信扫一扫

MYSQL的分区表创建示例

张宏涛心理 2022-02-08 阅读 93

MYSQL的分区字段,必须包含在主键字段内。

存在问题,如果按照create_time日期建立索引, 需要在唯一索引里面也要包含这个字段. 因为create_time会变,会导致唯一索引失效.
如果是在程序中做唯一验证,在并发情况下,会导致唯一索引失效.

  • 建分区表SQL示例如下, 使用create_time作为分区字段.
use test ;
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user`
(
    `id`               bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
    `name`    varchar(128)        NOT NULL COMMENT 'name',
    `type`      varchar(128)        NOT NULL COMMENT 'type',
    `create_time`      timestamp           NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'create_time',
    `update_time`      timestamp           NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'update_time',
    PRIMARY KEY (`id`, `create_time`),
    UNIQUE KEY `uk_user_nt_un` (`name`, `type`, `create_time`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  PARTITION BY RANGE ( UNIX_TIMESTAMP(`create_time`) ) (
    PARTITION p20220101 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-01-01 00:00:00') ),
    PARTITION p20220201 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-02-01 00:00:00') ),
    PARTITION p20220301 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-03-01 00:00:00') ),
    PARTITION p20220401 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-04-01 00:00:00') ),
    PARTITION p20220501 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-05-01 00:00:00') ),
    PARTITION p20220601 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-06-01 00:00:00') ),
    PARTITION p20220701 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-07-01 00:00:00') ),
    PARTITION p20220801 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-08-01 00:00:00') ),
    PARTITION p20220901 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-09-01 00:00:00') ),
    PARTITION p20221001 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-10-01 00:00:00') ),
    PARTITION p20221101 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-11-01 00:00:00') ),
    PARTITION p20221201 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-12-01 00:00:00') ),
    PARTITION p20230101 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-01-01 00:00:00') )
);

  • 验证 唯一约束失效…
    在这里插入图片描述
举报

相关推荐

0 条评论