MYSQL自动审核关于AUTO_INCREMENT提示

一 序

  公司的sql工单,引入了自动审核工具。毕竟人肉审核太苦了,想想也可知道,靠dba的火眼金睛忙不过来,一出差就是大问题。这里工具是Inception。好了背景结束了。

二 

要备份线上历史表的数据,所以基本上就是考show create table 来看看原来怎么建的,copy出来,改改表名加日期就是备份表了。

CREATE TABLE `XXX` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',

提示报错语句如下:

Set unsigned attribute on auto increment column in table XXX

整数主键有可选的属性“UNSIGNED”(无符号),看下书上的介绍。


类型 声明符号 取值范围
有符号整数 SIGNED -2147483648 ~ 2147483647
无符号整数 UNSIGNED 0 ~ 4294967295

所以,简单的修改就是建表SQL加上unsigned,主键都是正数。

CREATE TABLE `XXX` (
    `id`  int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键' ,
    PRIMARY KEY (`id`)
)
ENGINE=InnoDB AUTO_INCREMENT = 100 DEFAULT CHARACTER SET=utf8 COMMENT='XXX表';

***********************

因为mysam的不常用了,innodb类型的update auto_increment字段,如果列值与已有的值重复,则会出错;

所以关于id不建议采用了auto_increment。尽量外部生成后设值,简单不出错。


猜你喜欢

转载自blog.csdn.net/bohu83/article/details/80896159