MYSQL自动审核关于AUTO_INCREMENT提示

84 篇文章 23 订阅

一 序

  公司的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
无符号整数UNSIGNED0 ~ 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。尽量外部生成后设值,简单不出错。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值