MySQL中主键为0与主键自排约束的关系详解(细节)

 更新时间:2018年05月19日 11:29:23   作者:汪凡  
这篇文章主要给大家介绍了关于MySQL中主键为0与主键自排约束的关系的相关资料,主要介绍的是其中的一些非常细的细节,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

本文主要介绍了关于MySQL主键为0与主键自排约束的关系,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

开始不设置主键表的设计如下:

如果id的位置有好几个0的话:设置主键并且自动排序时,0会从1开始递增;

Insert 进去 id = 0的数据,数据会从实际的行数开始增加,和从0变化不一样;

现在主键是没有0的,如果把某个id改成0的话,0不会变!直接会进行排序;

再insert一个id=0的看看,居然还是跟刚才一样直接跟行数相关!

再重置一下自动排序,看看这个0会不会有变化,先取消自排;

再加上自排,果然跟想的一样,0要变成1了,错误提示说的是主键有重复的1所以不让自排,

修改之后,果真可以了,0变成1了,

小结

我觉得也就这几种情况吧,无符号的情况应该没什么区别,还有什么没有考虑的希望大家给我留言,可以告诉我你是怎么想的,我也很想知道,现在抛砖引玉我把我的总结和想法写一下:

  对我来说,0在数据库里很特殊。

  使用limit查看指定范围数据的时候这时候表就会是从0开始往下排的顺序,但是insert添加一行数据的时候反而是跟行数有关系,这时候又是按照从1开始往下排的顺序。如果使用主键自排约束以前表里有0,再设置完主键自排以后所有的0又不会根据行数,而是直接按照自上而下的顺序从1开始排。如果把表中的某个主键的数改成0,那直接就会进行排序放到正数前面,也就是说主键自排是允许有0存在的,那为什么本身存在的0要去修改成从1开始的递增序列呢?哪怕没加主键自排以前只有一个0,加了主键自排以后还是会变成1。

  开始有0,增加主键自排约束,0依次变为1,2,3,4.......

  开始没0,增加主键自排约束,新添加的主键是0的行会根据行数自行变化,注意这里是新添加的行,使用的是insert。

  开始没0,把某个主键的数修改成0,这个0会直接在排好序了再在表里显示出来。

说得简单一点就是,增加主键自排约束后:

   主键的值:修改成的0,可以存在,就是排个序。

        新添加的0,不允许存在,要根据行号改变。

        本身存在的0,不允许存在,要从1开始递增变化。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 如何实现mysql的远程连接

    如何实现mysql的远程连接

    这篇文章详细介绍了mysql如何实现远程连接,文中有详细的代码实例讲解,有一定的参考价值,需要的朋友可以参考阅读
    2023-04-04
  • MySQL导入导出助手类库MysqlHelper安装使用

    MySQL导入导出助手类库MysqlHelper安装使用

    这篇文章主要为大家介绍了MySQL导入导出助手类库MysqlHelper安装使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • MySQL性能瓶颈排查定位实例详解

    MySQL性能瓶颈排查定位实例详解

    这篇文章主要介绍了MySQL性能瓶颈排查定位的方法,结合实例形式详细分析了MySQL排查性能瓶颈问题的步骤与相关技巧,需要的朋友可以参考下
    2016-04-04
  • MySql安装与使用图文教程【推荐】

    MySql安装与使用图文教程【推荐】

    mysql是一种关联数据库管理系统,在程序开发中应用非常广泛,下面通过本文给大家介绍mysql安装与使用教程,感兴趣的朋友一起学习吧
    2016-05-05
  • MySQL视图原理与基本操作示例

    MySQL视图原理与基本操作示例

    这篇文章主要介绍了MySQL视图原理与基本操作,简单描述了mysql视图的概念、功能并结合实例形式分析了mysql视图的创建、查询、修改、删除等相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • MySQL开启慢查询日志功能的方法

    MySQL开启慢查询日志功能的方法

    今天小编就为大家分享一篇关于MySQL开启慢查询日志功能的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • MySQL解决字符集编码问题

    MySQL解决字符集编码问题

    MySQL的默认编码方式是 拉丁文,如果想要设置一些汉字的数据.可能会报错.这篇文章中主要介绍了解决这个问题的方法,需要的朋友可以参考一下
    2023-04-04
  • mysql事务处理用法与实例代码详解

    mysql事务处理用法与实例代码详解

    这篇文章主要介绍了mysql事务处理用法与实例代码详解,详细的介绍了事物的特性和用法并实现php和mysql事务处理例子,非常具有实用价值,需要的朋友可以参考下
    2018-12-12
  • Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法

    Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法

    这篇文章主要介绍了Mysql数据库从5.6.28版本升到8.0.11版本过程中遇到的问题及解决方法,解决办法有三种,每种方法给大家介绍的都很详细,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05

最新评论