前言

一. 联合主键自增问题

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

当时我好奇的是怎么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

字节数 : 4;编码:UTF-16

字节数 : 2;编码:UTF-16BE

字节数 : 2;编码:UTF-16LE

中文汉字:

字节数 : 2;编码:GB2312

字节数 : 2;编码:GBK

字节数 : 2;编码:GB18030

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

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

字节数 : 4;编码:UTF-16

字节数 : 2;编码:UTF-16BE

字节数 : 2;编码:UTF-16LE

1个字节byte=8bit(比特/位)  1bit=0.125B字节

1个汉字两个字节 16bit,2B.

字符:汉字,数字,字母等

Byte,bit是存储单位

Bit——比特

B ——字节 byte

KB——千字节

MB——兆字节

GB——吉字节

TB——太字节

1B=8 Bit

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB

mysql数据库表的自增主键号不规律,重新排列

mysql数据库表的自增主键ID乱了,需要重新排序. 原理:删除原有的自增ID,重新建立新的自增ID. 1.删除原有主键: ALTER TABLE `table_name` DROP `id`; 2. ...

Mysql数据库表的自增主键ID号乱了,需要重新排列。

Mysql数据库表的自增主键ID号乱了,需要重新排列. 原理:删除原有的自增ID,重新建立新的自增ID. 1,删除原有主键:ALTER TABLE `table_name` DROP `id`; 2, ...

mysql数据库插入数据获取自增主键的三种方式(jdbc PreparedStatement方式、mybatis useGeneratedKeys方式、mybatis selectKey方式)

通常来说对于mysql数据库插入数据获取主键的方法是采用selectKey的方式,特别是当你持久层使用mybatis框架的时候. 本文除此之外介绍其它两种获取主键的方式. 为了方便描述我们先建一张my ...

Mybatis+Mysql插入数据库返回自增主键id值的三种方法

一.场景: 插入数据库的值需要立即得到返回的主键id进行下一步程序操作 二.解决方法: 第一种:使用通用mapper的插入方法 Mapper.insertSelective(record): 此方法: ...

mybatis获取插入的语句主键(自增主键)

Mysql对自增主键ID进行重新排序

Mysql数据库表的自增主键ID号经过一段时间的添加与删除之后乱了,需要重新排列. 原理:删除原有的自增ID,重新建立新的自增ID. 1,删除原有主键: ALTER TABLE `table_name ...

Mysql自增主键ID重新排序方法详解

Mysql数据库表的自增主键ID号乱了,需要重新排列. 原理:删除原有的自增ID,重新建立新的自增ID. 1,删除原有主键: ALTER TABLE `table_name` DROP `id`; 2 ...

Mysql 修改字段长度、修改列名、新增列、修改自增主键起始值

alter table 表名 modify column 字段名 类型; 例如 数据库中user表 name字段是varchar(30) 可以用 ) ; --修改字段长度 )--修改表列名 ); -- ...

MySQL导入csv文件内容到Table及数据库的自增主键设置

写在前面 目的是测试将csv文件内容导入到表中, 同时记录一下自增主键的设置. 测试采用MySQL8.0. 新建表customer_info如下, 未设置主键. 修改上表, 添加主键id, 并设置为自 ...

Oracle设置主键自增

oracle没有mysql那样可以有自增主键,需要自己通过创建序列才能实现自增 /*创建自增序列*/ CREATE SEQUENCE CMB_CHINA_CITYS_ID MINVALUE --最小值 ...

随机推荐

UIImageView变灰

1.UIImageView圆角 CALayer *l = [cell.imgAvatarImage layer]; [l setMasksToBounds:YES]; [l setCornerRadi ...

制作nginx和php的rpm包

rpm包的制作真几把烦,制作php的rpm花了我3天时间,因为是根据线上环境来做的,依赖的第三方库太多,本来想把所有的第三方库做进php包,后来发现在rpmbuild -bb的时候非常耗时,而且乱七八 ...

爬虫-html

Uri myUri =new Uri(@sURL); WebRequest wrq = WebRequest.Create(myUri); WebResponse wrs = wrq.GetRespo ...

编写isNull isArray isFunction的方法

1.isNull 判断null,需要排除掉undefined和0.''(空串). function isNull(arr){ return !arr&&typeof arr!=='un ...

【C语言天天练(二四)】内存分配

引言: 对于C语言程序,了解它执行时在内存中是怎样分配的对于我们理解它的执行机制是很实用的.以下就总结一下C语言程序的一些内存分配知识. 一 一段C程序.编译连接后形成的可运行文件一般有代码段.数据段 ...

【RabbitMQ+Python入门经典】兔子和兔子窝 笔记

RabbitMQ工业级的消息队列服务器. 兔子和兔子窝 动机来源:从生产环境的电子邮件处理流程当中分支出一个特定的离线分析流程. 解决方案1: 开始使用MySQL处理,将要处理的东西放在表里面,另一个 ...

debian9 开启rc.local服务

由于某些软件并没有增加开启启动的服务,很多时候需要手工添加,一般我们都是推荐添加命令到 /etc/rc.local 文件,但是 Debian 9 默认不带 /etc/rc.local 文件,而 rc. ...

向指定URL发送GET、POST方法的请求

/** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name ...

python之Bottle框架

一.简单的Bottle框架 1)bottle框架简介 安装 pip install bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架. 此框架只由一个 .py 文件,除 ...

java学习第04天(语句、函数、数组)

(3)循环结构 格式: for(初始化表达式,循环条件表达式,循环后的操作变大时){ 执行语句,循环体: } 注: a. for循环里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真 ...

mysql 联合主键自增,mysql联合主键自增、主键最大长度小记相关推荐

  1. mysql 联合主键重复数据库_联合主键和复合主键有什么区别

    联合主键和复合主键有什么区别 发布时间:2020-07-11 09:52:20 来源:亿速云 阅读:171 作者:Leah 这期内容当中小编将会给大家带来有关联合主键和复合主键有什么区别,文章内容丰富 ...

  2. mysql复合主键的区别_联合主键和复合主键区别

    什么是数据表的复合主键 所谓的复合主键 就是指你表的主键含有一个以上的字段组成 比如 create table test ( name varchar(19), id number, value va ...

  3. sql优化之:数据库索引创建原则,or/in/union与索引优化,聚集索引/非聚集索引/联合索引/索引覆盖,MySQL冗余数据的三种方案,MySQL双主一致性架构优化(来源:架构师之路)

    一.一些常见的SQL实践 (1)负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好 ...

  4. MySQL 之 约束 (主键、唯一、非空、自增、外键)

    MySQL 之 约束 (主键.唯一.非空.自增.外键) 目的:使得数据更准确,更完整. 约束的分类: 1.键约束 (1)主键约束 (2)唯一键约束 (3)外键约束 2.非空约束 3.默认值约束 4.自 ...

  5. mysql的学习要点_MySQL中的联合索引的学习要点总结

    MySQL中的联合索引的学习要点总结 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a ...

  6. oracle联合主键顺序,oracle数据库联合主键

    1.not null 非空约束 ①强制列不接受空值 ②例:创建表时,name varchar(6) not null, 2.unique 唯一性约束 ①约束唯一标识数据库表中的每条记录 ②unique ...

  7. 主键由数据库mysql 映射native_Hibernate主键生成策略详解

    转载自:http://blog.csdn.net/wanghuan203/article/details/7562395 hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定 ...

  8. MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析...

    文章出处:http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描,主键索引(聚集索引.第一索引),非主键索引(非聚集索引.第二索引),覆盖索引四种不同查询的分 ...

  9. mysql联合索引和单索引_mysql联合索引跟单列索引的区别

    为了提高数据库效率,建索引是家常便饭:那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下. 一.联合索引测试 注: ...

  10. mysql主键和外键_谈谈mysql的主键和外键

    主键:保证数据的唯一性,非空且唯一,一般设置主键的语法为:字段 类型 PRIMARY KEY;或者 字段 类型,PRIMARY KEY(字段名) 外键:保证数据的完整性,一致性.一般设置的外键关联的是 ...

最新文章

  1. 重置密码遇到ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes)问题
  2. C语言解释器的实现--存储结构(一)
  3. python的in,is和id函数
  4. java中如何改变状态栏_如何创建状态栏
  5. elasticsearch_script_01
  6. 快速保留小数点后面几位(转)
  7. 【WPF】WPF中调用Winform
  8. python使用HDF文件格式,保存多个类型的数据到一个文件
  9. Loaded runtime CuDNN library: 7103 (compatibility version 7100) but source was compiled with 7005 ..
  10. 初次使用CocoaPods遇到的问题总结
  11. 常用31个Java机器学习、深度学习、自然语言处理学习库工具
  12. 认识并学会springCloud的使用
  13. 计算机维护费可以跨年吗,税控技术维护费是否可以跨年抵扣?
  14. flashfxp和任务计划自动定时ftp备份
  15. 不同网段共享文件服务器,不同网段ip 如何设置局域网共享?
  16. 职友集(www.jobui.com) Lucene Similarity 的排序规则更改了...
  17. html分组标签tfoot,网页布局中 tbody标签与thead和tfoot标签使用
  18. 电影最top《投名状》摘录
  19. android otg 挂载流程,android USB OTG功能如何打开及实现
  20. markdown插入本地图片小技巧

热门文章

  1. 动态规划(dynamic programming)初步入门
  2. 注册一个北京公司可以申请办理京牌吗,好申请吗?
  3. 【Microsoft Office】免密破解Microsoft Word文档(.docx)的文档保护
  4. 浅析Servlet中的四大作用域
  5. 怎样用计算机弹虫儿飞,吉他初学者必看:虫儿飞指弹教程
  6. windows平台Emacs单实例原理、设置及右键菜单的添加
  7. python爬虫--不限平台歌曲下载(收费也可)
  8. glm/glm.hpp_从GLM到GBM(第2部分)
  9. mysql group by 命令_MySQL常用命令(八)--GROUP BY、HAVING、SELECT子句的顺序
  10. 人人都能看懂的 AI 入门课