美文网首页mysql
(8)主键id 自增id

(8)主键id 自增id

作者: hedgehog1112 | 来源:发表于2020-11-21 20:22 被阅读0次

    1、不设置主键mysql如何处理?

    InnoDB自动创建 一个不可见6字节row_id(作为主键id),由InnoDB维护全局dictsys.row_id,每插入一条,全局row_id加一

    全局row_id一直涨2 的 48 幂次 - 1 时再 + 1 row_id 的低 48 位都为 0,再插入row_id=0,主键冲突,避免隐患,要定义主键。

    2、自增 ID 用完了,怎么办?

    2的32次方-1  4294967295,可应付大部分,有用完风险用 big int unsigned

    1)创建表,只包含自增 id,并插入一条数据。

    create tablet 0 (id int unsigned auto\_increment primary key); insert into t 0 values(null);

    2)通过 show 命令 show create table t0; 查看表情况

    自增 ID 最大=2 的 32 幂次方 - 1 = 4294967295,因为int unsigned,

    3)建表时,直接声明 AUTO_INCREMENT 初始值

    AUTO_INCREMENT 已经变成 4294967295 了,再插入,主键冲突

    https://mp.weixin.qq.com/s/tc9s6-Y5zOVEt5jWpsJaZw

    相关文章

      网友评论

        本文标题:(8)主键id 自增id

        本文链接:https://www.haomeiwen.com/subject/qybeiktx.html