问题:
如何给除了主键外的字段设置自增?
一个表有主键,是自增的,
我想给表的另一个字段设置主键,设置成自增从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