Automatisches Inkrement in MySQL zurücksetzen

Preet Sanghavi 28 März 2022
Automatisches Inkrement in MySQL zurücksetzen

In diesem Tutorial erfahren Sie, wie Sie das automatische Inkrement in der MySQL-Tabelle zurücksetzen.

Die meisten Unternehmen und Organisationen, die MySQL verwenden, müssen Werte gleichzeitig in mehrere Tabellen einfügen. Obwohl es nicht möglich ist, dass alle Felder der eingefügten Datensätze nicht leer sind, kann dies zu Fehlern führen oder einen Fehler auslösen, wenn diese Datensätze basierend auf einer bestimmten Bedingung abgerufen werden.

Um dieses Problem zu lösen, unterstützt uns MySQL mit einem Auto-Increment-Feld. Es hilft uns, jedes Mal, wenn ein neuer Datensatz eingefügt wird, einen bestimmten Wert in MySQL hinzuzufügen oder zu aktualisieren. Es wird im Allgemeinen für die Spalte verwendet, die dem Primärschlüssel zugeordnet ist.

Da der Wert dieser Variablen weiter zunimmt, wird es für den Analysten unerlässlich, den Wert dieser Variablen zu kontrollieren. Dies kann mit der Anweisung ALTER TABLE erfolgen.

Lassen Sie uns versuchen, dies genauer zu verstehen.

Wir erstellen jedoch zwei Dummy-Tabellen, mit denen wir arbeiten können, bevor wir beginnen. Hier erstellen wir eine Tabelle, student_dates_1, zusammen mit ein paar Zeilen.

-- create the table student_dates_3
CREATE TABLE student_dates_3(
  stu_id int NOT NULL AUTO_INCREMENT,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_date date,
  primary key(stu_id)
);

Einfügen von Einträgen in die Tabelle student_dates mit der INSERT-Anweisung

Die vorherige Abfrage erstellt eine Tabelle mit dem Namen student_dates. Versuchen wir nun, mit Hilfe der INSERT-Anweisung Daten für einige Schüler hinzuzufügen. Dieser Vorgang kann wie folgt durchgeführt werden:

-- insert rows to the table student_dates_3
INSERT INTO student_dates_3(stu_firstName,stu_date) 
 VALUES("Preet",STR_TO_DATE('24-May-2005', '%d-%M-%Y')),
 ("Dhruv",STR_TO_DATE('14-June-2001', '%d-%M-%Y')),
 ("Mathew",STR_TO_DATE('13-December-2020', '%d-%M-%Y')),
 ("Jeet",STR_TO_DATE('14-May-2003', '%d-%M-%Y')),
 ("Steyn",STR_TO_DATE('19-July-2002', '%d-%M-%Y'));

Der oben genannte Code würde die Studentendaten in die Tabelle student_dates eintragen.

SELECT * from student_dates_3;

Ausgabe:

stu_id	stu_firstName	stu_date
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
4		Jeet			2003-05-14
5		Steyn			2002-07-19

Zurücksetzen des Werts von AUTO_INCREMENT

Um den Wert der Variablen AUTO_INCREMENT auf einen bestimmten Wert zu aktualisieren, kann man die folgende Syntax verwenden.

ALTER TABLE name_of_the_table AUTO_INCREMENT = x;

In der oben genannten Abfrage stellt x den aktualisierten Wert dar, der in der angegebenen Tabelle hinzugefügt werden muss. Diese Logik kann verwendet werden, um den Wert der Variablen für die Tabelle student_dates_3 mit Hilfe der folgenden Abfrage zu aktualisieren.

ALTER TABLE student_dates_3 AUTO_INCREMENT = 100;

Der Primärschlüssel stu_id wird automatisch mit dem in der Variablen AUTO_INCREMENT gesetzten Wert aktualisiert, wenn wir Datensätze hinzufügen. Lassen Sie uns nun einen Wert in die Tabelle student_dates_3 einfügen.

-- insert rows to the table student_dates_3
INSERT INTO student_dates_3(stu_firstName,stu_date) 
 VALUES("Rutvik",STR_TO_DATE('16-January-2001', '%d-%M-%Y'));

Wir haben die stu_id für den Studenten namens Rutvik als 100. Dies kann mit der folgenden Abfrage überprüft werden.

SELECT * from student_dates_3;

Ausgabe:

stu_id	stu_firstName	stu_date
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
4		Jeet			2003-05-14
5		Steyn			2002-07-19
6		Rutvik			2001-16-01

Mit Hilfe der Anweisung ALTER TABLE und dem Schlüsselwort AUTO_INCREMENT können wir also den Wert des Felds AUTO_INCREMENT effizient aktualisieren, um die Werte der Datensätze in der Spalte, die dem Primärschlüssel zugeordnet ist, automatisch zu aktualisieren.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub