Home>Article>Database> How to add auto-increment attributes to fields in mysql

How to add auto-increment attributes to fields in mysql

青灯夜游
青灯夜游 Original
2021-12-02 10:44:43 16893browse

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;".

How to add auto-increment attributes to fields in mysql

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.

Example:

Existing mysql data table, I hope to add an auto-increment field and set the initial value of the new data.

  • It’s actually not complicated, just a reminder.

Test table

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');

Add auto-increment fields and set the starting value of new data

/*增加一个自增主键字段,分两步操作*/ /*首先增加自增字段*/ alter table t_abc add column id int auto_increment primary key; /*执行完上面这一条,字段增加,但值为空*/ /*执行这一条,它会自动为已存在的数据的自增字段赋初值,从1开始,同时将后续新增的数据从100开始*/ alter table t_abc auto_increment=100;

Modify existing ones Data initial value

/*如果希望所有的数据都从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; /*这里不能直接引用变量,因此手动挪移过来*/

Verify it

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn