当前位置:   article > 正文

mysql中使用联合主键并设置非主键自增_非主键可以设置自动递增吗

非主键可以设置自动递增吗

mysql中使用联合主键并设置非主键自增

数据库里有三个三字段,id , wire_id, station_id。

其中wire_id+station_id合一起不允许重复(单独的某一个允许重复)

并且id需要实现自增

### 尝试一:(未成功)

  • 将wire_id和station_id设置为联合主键
  • 想将id设置为自增

这里设置id自增的时候就会报错,因为只允许索引(包括主键)的才能设置为自增

所以需要先将id单独设置为唯一索引才行。

尝试二:(未成功)

  • 将wire_id和station_id设置为联合主键
  • 给id设置唯一索引,实现自增

问题所在:这个方法可以实现wire_id+station_id唯一存在,但是对于id的自增,会有问题

假如现在表里有三行id 为1~3,现在插入了个id=4,然后又将id=4的这个立马删除,

接下来插入一行数据它就从id=5开始算了,不是4了。这个就是问题所在。

意思就是:

我原来表里有100行,现在将后99行全删除,然后再插入一行,这行的默认id是从101开始的!!!是不符合我们要求的

大佬方法:成功了

  • 将id设置为主键!!!!
  • 将wire_id+station_id两个加一起,做成唯一索引!!!!

image-20210616232505994

image-20210616232518699

  • 完美解决!!!!!!

如果你的要求只有wire_id+station_id合一起不允许重复(单独的某一个允许重复)

,没有后面的还要实现自增的话,直接将两个设置为主键就行,直接用navicat在两个字段上面分别点个主键就行。如果你还要实现自增这个要求的话,就使用我的方法三。

image-20210616232754333

个要求的话,就使用我的方法三。

[外链图片转存中…(img-NSLhpmBo-1623857349278)]

之前想的一直是让两个一起的设置为主键,忘记了将两个一起的设置为索引也可以让它唯一。。!!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/912151
推荐阅读
相关标签
  

闽ICP备14008679号