zoukankan      html  css  js  c++  java
  • MySQL自增id用完了

    每日一笑

    母亲领着女儿来到精神病院。
    母亲说:“大夫,这姑娘从一年前开始犯病,嘴里在说:‘我要下金蛋啦。’而且叭哒叭哒扇动手脚,还咯咯咯地学鸡叫!”
    “我明白了。尽管她病成这样,你做母亲的却整整一年没有干涉她!”
    “是呀,我想八成她真会下金蛋,所以耐心观察了一年。”

    今天遇到了一个问题,当mysql中的自增id用完后再插入数据会怎样?

    既然遇到这个问题,就去实践一下吧。

    首先创建一个只包含自增id的数据表

    create table id_test2(id int unsigned auto_increment primary key);

    但是这样并没有足够的数据来使id用完,int类型最大可以达到2的32次方减1,也就是4294967295。

    我们可以通过在创建表时,将初始值设置为4294967295

    create table id_test(id int unsigned auto_increment primary key)  auto_increment = 4294967295;

    然后插入一条数据后,其id就会是4294967295

    INSERT INTO t1 VALUES(NULL)

    然后再插入数据,直接报错了

    4294967295这个大小在大部分场景中已经足够用了,如果服务需要经常的插入和删除的话,还是存在一些风险的。

    如果int的大小不够用,可以使用bigint类型,bigint 带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。

  • 相关阅读:
    Sample Page
    3.21之前刷题总结
    存储过程动态组建查询where语句
    SQL常备知识
    学习SilverLight:(1)SilverLight3.0和JavaScript交互
    SQL SERVER 2005 Tempdb
    学习atlas
    sql server系统表详细说明(转)
    js 基数排序的过程
    vuerouter 刷新页面后 url地址不变 参数还在 保留当前页 routerlink取值 this.$route
  • 原文地址:https://www.cnblogs.com/xjl-raynor/p/13857397.html
Copyright © 2011-2022 走看看