So verwenden Sie MySQL Auto-Increment

So verwenden Sie MySQL Auto-Increment
Auto-Inkrement ist ein sehr wichtiges Attribut von MySQL. Wenn eine Tabelle ein numerisches Feld benötigt, das automatisch inkrementiert wird, um eine sequentielle Nummer zu generieren, wird das automatische Inkrementattribut für dieses Feld verwendet. Das Feld Auto-Increment-Feld kann als Primärschlüssel oder eindeutiger Schlüssel für eine Tabelle zugewiesen werden, wenn dies erforderlich ist. Dieses Feld kann keinen Nullwert speichern. Wenn also das automatische Inkrementattribut für ein Feld einer Tabelle festgelegt ist, wird keine Nullbeschränkung automatisch für dieses Feld festgelegt. Wenn neue Datensätze in eine Tabelle einfügen müssen, die das Feld Auto-Increment-Feld enthält, muss der Benutzer keinen Wert für dieses Feld angeben. Wie dieses Attribut in MySQL -Tabellen funktioniert.

Merkmale des automatischen Inkrementsfeldes:

  • Der erste Datensatz dieses Feldes beginnt standardmäßig 1 von 1 und wird um 1 erhöht.
  • Wenn der Benutzer zum Zeitpunkt der Einfügung einen bestimmten numerischen Wert ohne Null für dieses Feld angibt, der nicht in der sequentiellen Reihenfolge liegt.
  • Wenn ein Wert dieses Feldes durch einen anderen Wert aktualisiert wird, der in der Tabelle bereits vorhanden ist, generiert MySQL eine Fehlermeldung.
  • Wenn der Benutzer die letzten Datensätze aus der Tabelle löscht, hängt die neue sequentielle Nummer von der Engine der Tabelle ab. Die InnoDB -Tabelle generiert nie die zuvor generierte Zahl, wenn eine neue Datensätze einfügen, aber die MyISAM -Tabelle generiert die letzte aufeinanderfolgende Nummer, die aus der Tabelle entfernt wird.
  • Last_insert_id () Funktion wird verwendet, um den Wert der in der letzten Insertion generierten Zahl abzurufen.

Syntax:

Erstellen Sie Tabelle Tabelle 1
(
Feld1 Datentyp auto_increment [Primärschlüssel],
Feld2 Datentyp [NULL | NICHT NULL ],

FELDN DataType [NULL | NICHT NULL ],
);

Hier, Feld1 wird als automatisches Inkrementfeld definiert, und der Datentyp dieses Feldes kann jeder numerische Datentyp sein wie Int oder Bigint. Es ist nicht obligatorisch, das automatische Inkrementfeld als Primärschlüssel zu definieren. Es kann jedoch als Hauptschlüssel verwendet werden, um eine Beziehung zwischen zwei Tabellen zu erstellen.

Voraussetzung:

Führen Sie die folgenden SQL -Befehle aus, um eine Datenbank mit dem Namen zu erstellenNewdb'und wählen Sie die Datenbank zum Erstellen von Tabellen mit automatischem Inkrementattribut aus.

Datenbank erstellen NewDB;
NEWB verwenden;

Erstellen Sie eine Tabelle mit automatischer Inkrement:

Führen Sie die folgende Erstellung an, um eine Tabelle mit dem Namen zu erstellen Studenten Wo Ausweis Das Feld wird mit automatischem Inkrementattribut erstellt und als Primärschlüssel festgelegt. Als nächstes werden zwei Arten von Einfügungsanweisungen ausgeführt. In der ersten Anweisung Insert wird in der Abfrage kein Feldname erwähnt, und Sie müssen alle Feldwerte der Tabelle für diese Art von Insertion angeben. Hier, der Null Wert wird verwendet für Ausweis Feld. In der zweiten Anweisung Einfügen werden alle Felder mit Ausnahme des Felds Auto-Increment-Feld in der Abfrage einfügen, da es automatisch generiert wird. Als nächstes wird die Auswahlanweisung ausgeführt, um den Inhalt von anzuzeigen Studenten Tisch.

Erstellen Sie Tabellenstudenten (
ID int unsigned auto_increment,
Nennen Sie Varchar (50) NICHT NULL,
Batch Smallint nicht null,
Semester Smallint NICHT NULL,
Primärschlüssel (ID)
);
In die Schülerwerte einfügen
(Null, 'Masrafi', 41, 9);
Einfügen in die Schüler (Name, Stapel, Semester) Werte
('Sakib', 43, 7);
Wählen Sie * von Schülern aus;

Sie können den Wert des automatischen Inkrementfelds manuell festlegen, müssen jedoch die sequentielle Reihenfolge beibehalten. Sie können keinen Wert niedriger als der zuletzt eingefügte Wert oder gleich einem vorhandenen Wert entsprechen. Die folgende Ersteinfügungsanweisung funktioniert ordnungsgemäß, da der zuletzt eingefügte Wert 2 betrug. Die zweite Anweisung in Einfügen generiert einen Fehler, da der Wert 2 bereits in der Tabelle vorhanden ist.

In die Schülerwerte einfügen
(4, 'Robel', 41, 9);
In die Schülerwerte einfügen
(2, 'Manzarul', 41, 9);

Erstellen Sie eine Tabelle mit automatischer Inkrement und nicht signiertem ZeroFill:

Es wurde bereits erwähnt, dass das Feld Auto-Increment-Feld standardmäßig von 1 beginnt. Wenn Sie jedoch vorzeichenloses ZeroFill-Attribut mit automatischem Inkrementfeld verwenden und die Länge der Zahl einstellen, wird die Zahl basierend auf der Länge mit führender Null erstellt. Die folgende Erstellung erstellt eine Tabelle mit dem Namen Lehrer wo automatische Inkrement- und nicht signierte ZeroFill-Attribute für die Einstellung tch_id Feld und die Länge des Feldes sind auf 4 eingestellt. Anschließend werden einige Daten in die Tabelle per Einfügen angegeben, und die Auswahlanweisung zeigt alle Inhalte der Tabelle an.

Tischlehrer erstellen (
TCH_ID MEDENTINT (4) Unsigned ZeroFill Auto_increment,
Nennen Sie Varchar (50) NICHT NULL,
Abteilungsvarchar (10) NICHT NULL,
Primärschlüssel (tch_id)
);
Einfügen in Lehrerwerte ein
(NULL, 'Maria', 'CSE'),
(Null, 'Janifer', 'BBA'),
(NULL, 'Micheal', 'Eng');
Wählen Sie * von Lehrern aus;

Hier wird gezeigt, dass 0001, 0002 Und 0003 werden als TCH_ID -Werte erzeugt.

Wenn Sie nun den letzten Datensatz löschen und einen neuen Datensatz einfügen, wird eine neue Nummer mehr als neuer tch_id als neu generiert tch_id.

Löschen von Lehrern, wobei tch_id = 3;
Einfügen in Lehrerwerte ein
(Null, 'Mahmuda', 'CSE');
Wählen Sie * von Lehrern aus;

RESETTING AUTO-INCREMENT-Feld zurücksetzen:

Wenn alle Datensätze aus dem gelöscht werden Lehrer Tabelle, die das automatische Inkrementfeld enthält und dann das neue Wert von tch_id wird nach dem letzten eingefügten Wert generiert. Nach dem Ausführen der folgenden SQL -Anweisungen wird gezeigt, dass die neu generierten tch_id Ist 0005 Weil der zuletzt eingefügte Wert war 0004.

Von Lehrern löschen;
Einfügen in Lehrerwerte ein
(NULL, 'Lucy', 'eee');
Wählen Sie * von Lehrern aus;

Wenn Sie die Tabelle zurücksetzen und den Wert erneut von 1 starten möchten, müssen Sie anstelle der Löschanweisung eine Anweisung ausführen. Dies wird in den folgenden drei Aussagen gezeigt.

Abgeschnittene Tabellenlehrer;
Einfügen in Lehrerwerte ein
(NULL, 'Lucy', 'eee');
Wählen Sie * von Lehrern aus;

Sie erhalten die folgende Ausgabe, nachdem Sie die Anweisungen ausgeführt haben.

Wenn Sie den Standardwert der Auto-Increment-Felder ändern möchten. Fügen Sie als Nächst. Hier wird der Startwert auf festgelegt 15.

Abgeschnittene Tabellenlehrer;
TABLE -Lehrer auto_increment = 15;
Einfügen in Lehrerwerte ein
(NULL, 'Lucy', 'eee');
Wählen Sie * von Lehrern aus;

Nach dem Ausführen der oben genannten SQL -Anweisungen wird die folgende Ausgabe angezeigt.

Abschluss:

Die Zwecke des automatischen Inkrementattributs werden ordnungsgemäß erläutert, indem in diesem Artikel Beispieltabellen verwendet werden, um dem MySQL-Benutzer zu helfen, die Verwendung dieses Attributs zu verstehen.