Maison >base de données >tutoriel mysql >Comment ajouter des attributs d'incrémentation automatique aux champs dans MySQL

Comment ajouter des attributs d'incrémentation automatique aux champs dans MySQL

青灯夜游
青灯夜游original
2021-12-02 10:44:4317034parcourir

Dans MySQL, vous pouvez ajouter des attributs d'auto-incrémentation au champ en ajoutant l'attribut "AUTO_INCREMENT" au champ. La syntaxe est "modifier le nom de la table, ajouter le nom du champ de la colonne, type de données AUTO_INCREMENT ;".

Comment ajouter des attributs d'incrémentation automatique aux champs dans MySQL

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

Obtenez la croissance automatique du champ en ajoutant l'attribut AUTO_INCREMENT au champ. Le format de syntaxe est le suivant :

字段名 数据类型 AUTO_INCREMENT

Par défaut, la valeur initiale de AUTO_INCREMENT est 1. Chaque fois qu'un nouvel enregistrement est ajouté, la valeur du champ est automatiquement augmentée de 1.

  • Un seul champ dans une table peut utiliser la contrainte AUTO_INCREMENT, et le champ doit avoir un index unique pour éviter la duplication du numéro de série (c'est-à-dire qu'il s'agit de la clé primaire ou d'une partie de la clé primaire).

  • Les champs contraints AUTO_INCREMENT doivent avoir l'attribut NOT NULL.

  • Les champs contraints AUTO_INCREMENT ne peuvent être que de type entier (TINYINT, SMALLINT, INT, BIGINT, etc.).

  • La valeur maximale du champ de contrainte AUTO_INCREMENT est contrainte par le type de données du champ Si la limite supérieure est atteinte, AUTO_INCREMENT deviendra invalide.

Les champs d'incrémentation automatique sont généralement utilisés dans les clés primaires.

Lorsque la clé primaire est définie comme auto-croissante, la valeur de cette clé primaire ne nécessite plus que l'utilisateur saisisse des données, mais est automatiquement attribuée par le système de base de données selon la définition. Chaque fois qu'un enregistrement est ajouté, la clé primaire augmentera automatiquement avec la même taille de pas.

Exemple :

Il existe une table de données MySQL existante. Je souhaite ajouter un champ à incrémentation automatique et définir la valeur initiale des nouvelles données.

  • Ce n’est en fait pas compliqué, juste un rappel.

Table de test

CREATE TABLE `t_abc` (
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Données de test :

INSERT INTO `t_abc` (`name`)
VALUES
	('mike'),
	('tom'),
	('jack');

Ajoutez des champs à incrémentation automatique et définissez la valeur de départ des nouvelles données

/*增加一个自增主键字段,分两步操作*/

/*首先增加自增字段*/
alter table t_abc add column id int auto_increment primary key;
/*执行完上面这一条,字段增加,但值为空*/

/*执行这一条,它会自动为已存在的数据的自增字段赋初值,从1开始,同时将后续新增的数据从100开始*/
alter table t_abc auto_increment=100;

Modifiez la valeur initiale des données existantes

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

Vérifiez-la

insert into t_abc(name) values('Marry');
select * from t_abc order by id desc;

[Recommandations associées : Tutoriel vidéo MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn