Heim > Datenbank > MySQL-Tutorial > So fügen Sie Feldern in MySQL automatische Inkrementierungsattribute hinzu

So fügen Sie Feldern in MySQL automatische Inkrementierungsattribute hinzu

青灯夜游
Freigeben: 2021-12-02 10:45:57
Original
17032 Leute haben es durchsucht

In MySQL können Sie dem Feld automatische Inkrementierungsattribute hinzufügen, indem Sie dem Feld das Attribut „AUTO_INCREMENT“ hinzufügen. Die Syntax lautet „Tabellennamen ändern, Spaltenfeldnamen hinzufügen, Datentyp AUTO_INCREMENT;“.

So fügen Sie Feldern in MySQL automatische Inkrementierungsattribute hinzu

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Erzielen Sie ein automatisches Feldwachstum, indem Sie dem Feld das Attribut AUTO_INCREMENT hinzufügen. Das Syntaxformat ist wie folgt:

字段名 数据类型 AUTO_INCREMENT
Nach dem Login kopieren

Standardmäßig ist der Anfangswert von AUTO_INCREMENT 1. Jedes Mal, wenn ein neuer Datensatz hinzugefügt wird, wird der Feldwert automatisch um 1 erhöht.

  • Nur ein Feld in einer Tabelle kann die AUTO_INCREMENT-Einschränkung verwenden, und das Feld muss einen eindeutigen Index haben, um eine Duplizierung der Seriennummer zu vermeiden (d. h. es ist der Primärschlüssel oder ein Teil des Primärschlüssels).

  • AUTO_INCREMENT-beschränkte Felder müssen das Attribut NOT NULL haben.

  • AUTO_INCREMENT-beschränkte Felder können nur ganzzahlige Typen sein (TINYINT, SMALLINT, INT, BIGINT usw.).

  • Der Maximalwert des AUTO_INCREMENT-Einschränkungsfelds wird durch den Datentyp des Felds eingeschränkt. Wenn die Obergrenze erreicht wird, wird AUTO_INCREMENT ungültig.

Auto-Inkrementfelder werden im Allgemeinen in Primärschlüsseln verwendet.

Wenn der Primärschlüssel als selbsterhöhend definiert ist, erfordert der Wert dieses Primärschlüssels nicht mehr die Eingabe von Daten durch den Benutzer, sondern wird automatisch vom Datenbanksystem gemäß der Definition zugewiesen. Jedes Mal, wenn ein Datensatz hinzugefügt wird, erhöht sich der Primärschlüssel automatisch mit der gleichen Schrittgröße.

Beispiel:

Es gibt eine vorhandene MySQL-Datentabelle. Ich möchte ein Auto-Inkrementierungsfeld hinzufügen und den Anfangswert der neuen Daten festlegen.

  • Es ist eigentlich nicht kompliziert, nur eine Erinnerung.

Testtabelle

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

Testdaten:

INSERT INTO `t_abc` (`name`)
VALUES
	('mike'),
	('tom'),
	('jack');
Nach dem Login kopieren

Automatisch inkrementierende Felder hinzufügen und den Startwert neuer Daten festlegen

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

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

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

Anfangswert vorhandener Daten ändern

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

Überprüfen

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

[Verwandte Empfehlungen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo fügen Sie Feldern in MySQL automatische Inkrementierungsattribute hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage