如何修改 tidb 的主键 pk

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0.6
  • 【问题描述】:修改primary key
    sql:
    CREATE TABLE test (
    id int(11) NOT NULL AUTO_INCREMENT,
    u_key varchar(255) NOT NULL,
    u_key_type varchar(255) NOT NULL,
    uid varchar(255) NOT NULL,
    create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    pid bigint(20) NOT NULL,
    version int(255) DEFAULT NULL,
    merged tinyint(1) DEFAULT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY pid_ukey_ukeytype (pid,u_key,u_key_type),
    KEY pid_uid (pid,uid),
    KEY uid (uid)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=192576348;

想把PRIMARY KEY (id),修改为 PRIMARY KEY (uid, id),

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

建议重建表达成需求

重建表 数据如何迁移呢 目前这边场景希望能够实时同步并且不丢失数据

需要配合业务看下怎么做合适了,可以业务双写或者使用工具同步下数据

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。