In mysql, you can add auto-increment attributes to the field by adding the "AUTO_INCREMENT" attribute to the field. The syntax is "alter table table name add column field name data type AUTO_INCREMENT;".
The operating environment of this tutorial: windows7 system, mysql8 version, Dell G3 computer.
Achieve field auto-growth by adding the AUTO_INCREMENT attribute to the field. The syntax format is as follows:
字段名 数据类型 AUTO_INCREMENT
By default, the initial value of AUTO_INCREMENT is 1. Every time a new record is added, the field value is automatically increased by 1.
Only one field in a table can use the AUTO_INCREMENT constraint, and the field must have a unique index to avoid repeated serial numbers (that is, the primary key or part of the primary key).
The fields of the AUTO_INCREMENT constraint must have the NOT NULL attribute.
AUTO_INCREMENT constrained fields can only be of integer type (TINYINT, SMALLINT, INT, BIGINT, etc.).
AUTO_INCREMENT The maximum value of a constrained field is constrained by the data type of the field. If the upper limit is reached, AUTO_INCREMENT will become invalid.
Auto-increment fields are generally used in primary keys.
When the primary key is defined as self-increasing, the value of the primary key no longer requires the user to enter data, but is automatically assigned by the database system according to the definition. Each time a record is added, the primary key will automatically increase with the same step size.
Existing mysql data table, I hope to add an auto-increment field and set the initial value of the new data.
CREATE TABLE `t_abc` ( `name` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Test data:
INSERT INTO `t_abc` (`name`) VALUES ('mike'), ('tom'), ('jack');
/*增加一个自增主键字段,分两步操作*/ /*首先增加自增字段*/ alter table t_abc add column id int auto_increment primary key; /*执行完上面这一条,字段增加,但值为空*/ /*执行这一条,它会自动为已存在的数据的自增字段赋初值,从1开始,同时将后续新增的数据从100开始*/ alter table t_abc auto_increment=100;
/*如果希望所有的数据都从10001 开始,我们可以这么做*/ alter table t_abc add column id int auto_increment primary key; /*这里没有指定任何数值,执行完后只为自增字段赋从1开始的初始值,其实隐含的设置当前表自增字段从1开始*/ alter table t_abc auto_increment; /*将所有数据增加10000*/ update t_abc set id=id+10000; /* 前面的100 我们是任意指定的,现在我们应该指定数据库中的maxId+1作为下一个数据的起始值*/ set @maxId=1; select max(id) into @maxId from t_abc; /*表中有3条数据,那么maxId 现在是10003*/ select @maxId+1 from dual; /* 10004 */ alter table t_abc auto_increment=10004; /*这里不能直接引用变量,因此手动挪移过来*/
insert into t_abc(name) values('Marry'); select * from t_abc order by id desc;
[Related recommendations: mysql video tutorial]
The above is the detailed content of How to add auto-increment attributes to fields in mysql. For more information, please follow other related articles on the PHP Chinese website!