mysql 联合主键自增,mysql联合主键自增、主键最大长度小记

本文探讨了MySQL中联合主键自增的原理,指出当多列作为主键时,自增列会根据其他主键列的值来确保唯一性。同时提到了一些注意事项,如需使用MyISAM存储引擎且自增列为第二列。此外,还介绍了不同字符集下英文字母和中文汉字所占的字节数,并讨论了如何重新排列混乱的自增主键ID。
摘要由CSDN通过智能技术生成

前言

一. 联合主键自增问题

今天上午闲来无事翻看了下数据库分类表的设计,看到这样一幕:

3330a07b5f0e4fdcc51b27008142647b.png

4920e5588d0fb9941d6e7a854fbbb937.png

当时我好奇的是怎么cateId自增会存在重复值的问题,然后翻看了下主键是由siteId和cateId组成。所以进行了查阅资料:

当多列组成联合主键时、auto_increment属性的列并不是自顾自得一味的增长,而是配合其他主键的列 从而得到唯一约束;如上图2所示  当siteId值不同时cateId会重归1开始自增

but这里有几个坑需要注意下,为了显眼我特地设置为红色:

1:存储引擎必须为MyISAM

2:自增主键必须为第二列

下面再总结一个小知识点

英文字母和中文汉字在不同的字符集编码下所占的字节数

英文字母:

字节数 : 1;编码:GB2312

字节数 : 1;编码:GBK

字节数 : 1;编码:GB18030

字节数 : 1;编码:ISO-8859-1

字节数 : 1;编码:UTF-8

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值