zoukankan      html  css  js  c++  java
  • mysql——非主键自增

    今天遇到一个问题:

    要创建一张表,其中我想将ip和date这两列作为一个复合主键,可以通过如下语句修改表结构:

    alter table tb_name add primary key (字段1,字段2,字段3);

    但是这样做会报错,原因是我在最开始创建表的时候已经将id作为主键了,因此要先取消id的主键(取消之前要先将id的自增去掉,否则无法取消他的主键)。

    此时这张表已经将ip和date设置为复合主键,但我仍然想将ip设为主键,此时就会报错:

    emmm 大概意思就是只有key能设置自增,但是这个key并一定是主键,按照下面博客修改表结构

    https://blog.csdn.net/likika2012/article/details/9951529

    CREATE TABLE `single_qps_01` (
      `id` bigint(11) NOT NULL AUTO_INCREMENT,
      `ip` varchar(100) NOT NULL,
      `date` datetime NOT NULL,
      `createTime` datetime DEFAULT NULL,
      `updateTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`ip`,`date`),
      KEY `id` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

    成功啦~!

    重置自增id:

    alter table `dns_qlb` auto_increment=1

  • 相关阅读:
    发现IDEA两个超级好用的工具
    事务的传播属性
    Java 单元测试PowerMockito
    Spirng源码学习 第一天
    2021年 每日打卡
    Spring源码调试环境搭建成功
    practice
    学习进度表
    报数
    负二进制转换
  • 原文地址:https://www.cnblogs.com/gaoquanquan/p/10801794.html
Copyright © 2011-2022 走看看