MySQL Insert Ignora la chiave duplicata

MySQL Insert Ignora la chiave duplicata
Ci sono spesso dati contrastanti nelle tabelle o set di risultati. È anche richiesto molto tempo per correggere e spesso devono essere evitati record ripetuti. È necessario identificare i record duplicati ed eliminarli da entrambe le tabelle. Questa sezione approfondirà come evitare che i dati duplicati appaiano all'interno di una tabella e su come eliminare i record duplicati attuali. In questa guida, imparerai come utilizzare l'inserzione Ignora la clausola per evitare l'errore.

Sintassi:

Ecco la sintassi per l'inserto Ignora query.

>> Inserisci Ignora in Table_name (col1, col2, col3) valori (value_list), (value_list), (value_list);

Inserisci Ignora tramite Workbench:

Apri il tuo MySQL Workbench 8.0 dal tuo sistema e collegarlo all'istanza del database.

Nell'area di comando, devi creare una tabella "dipendente" con quattro colonne in cui una di esse deve essere specificata come "univoca". Prova la query seguente nell'area della query Navigator per creare questa tabella. Seleziona l'intera query e fai clic sul segno flash per eseguirlo.

>> Crea un dipendente Tabella (ID ID Key primario non NULL, NAME VARCHAR (50) NOT NULL, AE VARCHAR (50), Stipendio Varchar (50), univoco (ID));

Al momento della creazione, è possibile trovare la tabella "dipendente" all'interno dell'elenco nell'opzione di "Tabelle" sotto il database "Dati".

Nella vista griglia, è possibile inserire i record senza digitare alcuna domanda. Quindi, apri la vista a griglia della tabella "dipendente" e aggiungi alcuni record come mostrato di seguito. Abbiamo inserito tutti i record univoci senza duplicati. Premi il pulsante "Applica" per applicare le modifiche.

Verrà aperta una nuova finestra con le query pertinenti relative ai record che abbiamo inserito sopra. Questa schermata può essere chiamata una schermata "Recensione". Se vuoi cambiare qualcosa, puoi farlo qui. Altrimenti, premi il pulsante Applica per eseguire le query.

Come puoi vedere, la query è stata eseguita correttamente e i record vengono salvati nel database e nella sua tabella "dipendente". Avrebbe generato un errore se avessimo aggiunto qualsiasi valore duplicato nella colonna "ID". Tocca il pulsante "finitura".

Questo riguardava la vista della griglia. Ora, insereremo i record tramite l'area della query. Nel frattempo, questa volta abbiamo inserito record duplicati per controllare l'output. Quindi, abbiamo provato la seguente query "Insert", in cui abbiamo due elenchi di valori. Entrambi gli elenchi di valori hanno lo stesso valore nella colonna 'id'. Seleziona la query e premi il segno flash per eseguire la query.

La query non funzionerà correttamente e genererà un errore a causa dei valori duplicati nel comando Insert come visualizzato nell'immagine.

Ora prova la stessa domanda sopra con l'inserto Ignora la clausola ed eseguila come presentato.

Puoi vedere che non genera un errore nell'area di output, ma dà un avvertimento che il comando contiene valori duplicati.

Aggiorna la visualizzazione della griglia della tabella "dipendente". L'inserto ignora la query ha funzionato la metà. Ha inserito il primo elenco di valori nella tabella, ma il secondo elenco di valori è stato ignorato a causa del valore ripetuto "13".

Inserisci ignorare tramite la shell della riga di comando:

Per capire questo concetto, apriamo la shell client di comando mysql nel tuo sistema. Dopo aver chiesto, digita la tua password mysql per iniziare a lavorarci.

Ora è il momento di creare una tabella. Prova il comando seguente per farlo. Abbiamo creato un tavolo chiamato "Ministro" mentre una delle sue colonne ha un vincolo unico. È chiaro che la colonna "ID" accetterà solo i valori univoci e non i valori duplicati.

>> Crea dati della tabella.Ministro (Key primario Mid int Primary non Null, Nome Varchar (45), City Varchar (45));

Le query funziona in modo appropriato e la tabella è stata creata. Per comprendere l'inserzione Ignora la clausola, devi prima vedere il funzionamento del comando insert semplice. Se si utilizza il comando Insert per inserire diversi dati di informazione in una tabella, MySQL sospende la transazione e genera un'eccezione se si verifica un errore durante l'elaborazione. Di conseguenza, la tabella non ha alcuna riga aggiunta ad essa. Inseriremo il primo record nella tabella "Ministro" usando la query di seguito. La query funzionerà correttamente perché il tavolo è attualmente vuoto e non vi è alcuna record con cui la controparte.

Poiché la colonna "ID" è univoca, quando proviamo l'istruzione seguente sulla shell della riga di comando, genererà un errore. Questo perché abbiamo aggiunto il valore "11" nella query precedente e, a causa della chiave univoca, non ci consente di aggiungere di nuovo il valore ripetuto.

Quindi, al controllo della tabella, possiamo vedere che la tabella ha solo 1 record aggiunto dalla prima query sugli insert.

>> Seleziona * dai dati.ministro;

Al contrario, se si utilizza la clausola INSERT IGNORE, le righe dati errate che attivano l'errore verranno trascurate e inseriranno solo quelle accurate. Nel comando seguente, abbiamo utilizzato il comando INSERT Ignora per evitare di aggiungere valori ripetuti nella tabella e trascurare l'errore. Come puoi vedere, il primo elenco di valori ha un valore duplicato "11" come nella query precedente. Mentre il secondo elenco di valori è unico, mostrerà 1 record inserito nella tabella, che è il secondo elenco di valori. MySQL indica anche che è stato inserito solo 1 record e 1 avviso viene generato nel messaggio. Puoi quindi supporre che se stiamo usando la clausola INSERT Ignora, MySQL fornisce un avvertimento.

Come puoi vedere dall'output seguente, abbiamo solo due record in questa tabella, il seposso dell'elenco dei valori forniti nella query sopra, che viene trascurata.

>> Seleziona * dai dati.ministro;

Conclusione:

Abbiamo fatto tutti gli esempi necessari di insert Ignore su valori duplicati tramite MySQL Workbench e Mysql Client Shell della riga di comando.