Come usare l'auto-incremento MySQL

Come usare l'auto-incremento MySQL
L'auto-incremento è un attributo molto importante di MySQL. Quando una tabella richiede un campo numerico che aumenta automaticamente per generare un numero sequenziale, viene utilizzato l'attributo di incremento automatico per quel campo. Il campo di incremento automatico può essere assegnato come chiave primaria o una chiave univoca per una tabella se richiede. Questo campo non può archiviare il valore null. Quindi, quando l'attributo di incremento automatico è impostato per qualsiasi campo di una tabella, non il vincolo NULL imposterà automaticamente per quel campo. Quando i nuovi record devono essere inseriti in una tabella che contiene il campo di incremento automatico, l'utente non deve fornire alcun valore per quel campo. Come funziona questo attributo nelle tabelle MySQL è mostrato in questo articolo.

Caratteristiche del campo automatico:

  • Il primo record di questo campo inizia sempre da 1 per impostazione predefinita e incrementata di 1 quando un nuovo record inserisce.
  • Se l'utente specifica un particolare valore numerico senza null per questo campo al momento dell'inserimento che non è nell'ordine sequenziale, un messaggio di errore verrà generato da MySQL.
  • Se qualsiasi valore di questo campo viene aggiornato da un altro valore che esiste già nella tabella, MySQL genererà un messaggio di errore.
  • Se l'utente elimina gli ultimi record dalla tabella, allora quello che sarà il nuovo numero sequenziale dipende dal motore della tabella. La tabella innodb non genera mai il numero precedentemente generato quando un nuovo inserto record, ma la tabella Myisam genera l'ultimo numero sequenziale che viene rimosso dalla tabella.
  • La funzione last_insert_id () viene utilizzata per recuperare il valore del numero generato nell'ultimo inserimento.

Sintassi:

Crea Table Table1
(
Field1 Datatype Auto_InCrement [chiave primaria],
Field2 Datatype [null | NON NULLO ],
..
Fieldn Datatype [null | NON NULLO ],
);

Qui, Field1 è definito come campo di incremento automatico e il tipo di dati di questo campo può essere qualsiasi tipo di dati numerico come Int O Bigint. Non è obbligatorio definire il campo di incremento automatico come la chiave primaria. Ma può essere usato come chiave primaria per creare una relazione tra due tabelle.

Prerequisito:

Esegui i seguenti comandi SQL per creare un database chiamato 'Newdb'e selezionare il database per la creazione di tabelle con attributo di incremento automatico.

Crea database newDB;
Usa newDB;

Crea una tabella con incremento automatico:

Esegui la seguente istruzione Crea per creare una tabella denominata studenti Dove id Il campo verrà creato con attributo automatico e impostato come chiave primaria. Successivamente, verranno eseguiti due tipi di dichiarazioni di inserto. Nella prima istruzione Insert, non viene menzionato alcun nome di campo nella query di insert e è necessario fornire tutti i valori di campo della tabella per questo tipo di inserimento. Qui, il null il valore viene utilizzato per id campo. Nella seconda istruzione Insert, tutti i campi ad eccezione del campo di incremento automatico sono menzionati nella query di inserto perché verrà generato automaticamente. Successivamente, l'istruzione SELECT viene eseguita per visualizzare il contenuto di studenti tavolo.

Crea studenti da tavolo (
Id int unsigned Auto_Increment,
Nome varchar (50) non null,
batch piccolo non null,
semestre piccolo non nullo,
Chiave primaria (ID)
);
Inserire nei valori degli studenti
(Null, 'Masrafi', 41, 9);
Inserisci gli studenti (nome, batch, semestre) valori
('Sakib', 43, 7);
Seleziona * dagli studenti;

È possibile impostare manualmente il valore del campo di incremento automatico ma è necessario mantenere l'ordine sequenziale. Non è possibile impostare alcun valore inferiore all'ultimo valore inserito o uguale a qualsiasi valore esistente. La seguente prima istruzione di insert funzionerà correttamente perché l'ultimo valore inserito era 2. La seconda istruzione insert genererà un errore perché il valore 2 esiste già nella tabella.

Inserire nei valori degli studenti
(4, "Robel", 41, 9);
Inserire nei valori degli studenti
(2, 'Manzarul', 41, 9);

Crea una tabella con incremento automatico e zerofill non firmato:

In precedenza ha menzionato che il campo di incremento automatico inizia da 1 per impostazione predefinita. Ma se si utilizza l'attributo zerofill non firmato con campo di incremento automatico e si imposta la lunghezza del numero, il numero verrà generato con lo zero leader in base alla lunghezza. La seguente istruzione Crea creerà una tabella denominata insegnanti dove sono impostati gli attributi automatici e non firmati tch_id il campo e la lunghezza del campo è impostata su 4. Successivamente, alcuni dati verranno inseriti nella tabella mediante istruzione Insert e l'istruzione Select visualizzerà tutto il contenuto della tabella.

Crea insegnanti di tabelle (
TCH_ID MEDIDINT (4) ZeroFill senza segno,
Nome varchar (50) non null,
Dipartimento Varchar (10) non NULL,
Chiave primaria (TCH_ID)
);
Inserire nei valori degli insegnanti
(Null, "Maria", "CSE"),
(Null, "Janifer", "BBA"),
(Null, "Micheal", "Eng");
Seleziona * dagli insegnanti;

Qui, lo viene mostrato 0001, 0002 E 0003 sono generati come valori tch_id.

Ora, se si elimina l'ultimo record e si inserisce un nuovo record, un nuovo numero più il valore TCH_ID eliminato verrà generato come nuovo tch_id.

Elimina dagli insegnanti in cui tch_id = 3;
Inserire nei valori degli insegnanti
(Null, "mahmuda", "cse");
Seleziona * dagli insegnanti;

Ripristino del campo di incremento automatico:

Se tutti i record vengono eliminati da insegnanti tabella che contiene il campo di incremento automatico quindi il nuovo Valore di tch_id sarà generato dopo l'ultimo valore inserito. Dopo aver eseguito le seguenti istruzioni SQL, verrà mostrato che i nuovi generati tch_id È 0005 Perché l'ultimo valore inserito era 0004.

Elimina dagli insegnanti;
Inserire nei valori degli insegnanti
(Null, 'Lucy', 'eee');
Seleziona * dagli insegnanti;

Se si desidera reimpostare la tabella e avviare nuovamente il valore da 1, è necessario eseguire l'istruzione Truncate anziché l'istruzione DELETE. Questo è mostrato nelle seguenti tre dichiarazioni.

Truncate Table Teachers;
Inserire nei valori degli insegnanti
(Null, 'Lucy', 'eee');
Seleziona * dagli insegnanti;

Otterrai il seguente output dopo aver eseguito le istruzioni.

Se si desidera modificare il valore predefinito dei campi di incremento automatico, è necessario eseguire l'istruzione Alter con l'avvio del valore di incremento automatico. Quindi, inserire un record e controllare il valore del campo di incremento automatico. Qui, il valore iniziale verrà impostato su 15.

Truncate Table Teachers;
Alter Table Teachers Auto_InCrement = 15;
Inserire nei valori degli insegnanti
(Null, 'Lucy', 'eee');
Seleziona * dagli insegnanti;

La seguente output apparirà dopo aver eseguito le istruzioni SQL sopra.

Conclusione:

Gli scopi dell'attributo di incremento automatico sono spiegati correttamente utilizzando le tabelle di esempio in questo articolo per aiutare l'utente MySQL a comprendere gli usi di questo attributo.