如何给除了主键外的字段设置自增及初始值

问题:

如何给除了主键外的字段设置自增?
一个表有主键,是自增的,
我想给表的另一个字段设置主键,设置成自增从1开始自增

mysql中只能设置一列为自增长,这一列可以是主键,也可以不是主键,如果不是主键,则必须将其设置为一种键(key,即索引,一般设为唯一索引)如果你的主键已经是自增了,那么这个表不能再有自增键了。 如果你的主键是非自增的,那么可以设置一个,自增的开始值为表属性,不是字段属性

--建表后,新增非主键自增字段
CREATE TABLE `items` (
  `id` int(11) NOT NULL ,  //去除AUTO_INCREMENT 非自增,插入时需要手动指定值
  `name` varchar(32) NOT NULL COMMENT '商品名称',
  `price` float(10,1) NOT NULL COMMENT '商品定价',
  `detail` text COMMENT '商品描述',
  `pic` varchar(64) DEFAULT NULL COMMENT '商品图片',
  `createtime` datetime NOT NULL COMMENT '生产日期',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

//在已有上述表结构的情况下添加一个非主键自增索引
ALTER TABLE `items`
ADD COLUMN `serial`  bigint UNSIGNED NOT NULL AUTO_INCREMENT AFTER `id`,
ADD INDEX `serial` (`serial`) USING BTREE,
AUTO_INCREMENT=1; 

 

--建表时,新增非主键自增字段

CREATE TABLE `items` (
  `id` int(11) NOT NULL, //去除AUTO_INCREMENT 非自增,插入时需要手动指定值
  `serial` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL COMMENT '商品名称',
  `price` float(10,1) NOT NULL COMMENT '商品定价',
  `detail` text COMMENT '商品描述',
  `pic` varchar(64) DEFAULT NULL COMMENT '商品图片',
  `createtime` datetime NOT NULL COMMENT '生产日期',
  PRIMARY KEY (`id`),
  KEY `serial` (`serial`) USING BTREE
) ENGINE=InnoDB  AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

自增长特定:

① 任何一个字段要做自增长前提必须是一个索引
② 自增长字段必须是整型数字

https://segmentfault.com/q/1010000008610794/a-1020000008611094 

https://blog.csdn.net/J080624/article/details/71703297

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值