MySQL MariaDB

MySQL Inserisci Ignora chiave duplicata

MySQL Inserisci Ignora chiave duplicata
Ci sono spesso dati in conflitto nelle tabelle o nei set di risultati. Inoltre, la correzione richiede molto tempo e spesso è necessario evitare registrazioni ripetute. È necessario identificare i record duplicati ed eliminarli da entrambe le tabelle. Questa sezione spiegherà come evitare che i dati duplicati appaiano all'interno di una tabella e come eliminare i record duplicati correnti. In questa guida imparerai come utilizzare la clausola INSERT IGNORE per evitare l'errore.

Sintassi:

Ecco la sintassi per la query INSERT IGNORE.

>> INSERT IGNORE INTO table_name(col1, col2, col3) VALUES (value_list), (value_list), (value_list);

INSERISCI IGNORA tramite Workbench:

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

Nell'area dei comandi, devi creare una tabella "Impiegato" con quattro colonne in cui una di esse deve essere specificata come "UNICO". Prova la query seguente nell'area delle query del navigatore per creare questa tabella. Seleziona l'intera query e fai clic sul segno flash per eseguirla.

>> CREATE TABLE Impiegato (ID int PRIMARY KEY NOT NULL, Name varchar(50) NOT NULL, Age Varchar(50), Salary varchar(50), UNIQUE (ID));

Al momento della creazione, puoi trovare la tabella "dipendente" all'interno dell'elenco sotto l'opzione "Tabelle" sotto il database "dati".

Nella visualizzazione griglia, puoi inserire i record senza digitare alcuna query. Quindi, apri la visualizzazione 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 schermata "Revisione". Se vuoi cambiare qualcosa, puoi farlo qui. Altrimenti, premi il pulsante Applica per eseguire le query.

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

Questo riguardava la visualizzazione della griglia. Ora inseriremo i record tramite l'area delle query. Nel frattempo, questa volta abbiamo inserito record duplicati per controllare l'output. Quindi, abbiamo provato la seguente query "INSERT", dove 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 query sopra con la clausola INSERT IGNORE ed eseguila come presentato.

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

Aggiorna la visualizzazione griglia della tabella "Dipendente". La query INSERT IGNORE ha funzionato a 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 IGNORE tramite la shell della riga di comando:

Per comprendere questo concetto, apriamo la shell del client da riga di comando MySQL nel tuo sistema. Su richiesta, digita la tua password MySQL per iniziare a lavorarci sopra.

Ora è il momento di creare una tabella. Prova il comando seguente per farlo. Abbiamo creato una tabella denominata 'minister' 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 TABELLA.minister( Mid INT PRIMARY KEY UNIQUE NOT NULL, Nome VARCHAR(45), Città VARCHAR(45));

La query funziona in modo appropriato e la tabella è stata creata. Per comprendere la clausola INSERT IGNORE, devi prima vedere il funzionamento del semplice comando INSERT. Se stai utilizzando il comando INSERT per inserire diversi dati informativi in ​​una tabella, MySQL sospende la transazione e genera un'eccezione se si verifica un errore durante l'elaborazione. Di conseguenza, alla tabella non sono state aggiunte righe. Inseriamo il primo record nella tabella "minister" utilizzando la query mostrata di seguito. La query funzionerà correttamente perché la tabella è attualmente vuota e non esiste un record con cui contropartita.

Poiché la colonna "ID" è UNICA, quando proviamo le istruzioni seguenti sulla shell della riga di comando, genererà un errore. Questo perché abbiamo aggiunto il valore "11" nella query precedente e a causa della chiave UNIQUE non ci consente di aggiungere nuovamente il valore ripetuto.

Quindi, controllando la tabella, possiamo vedere che la tabella ha solo 1 record aggiunto dalla prima query INSERT.

>> SELEZIONA * DAI dati.ministro;

Al contrario, se stai utilizzando la clausola INSERT IGNORE, le righe di dati errate che attivano l'errore verranno ignorate e verranno inserite solo quelle accurate. Nel comando seguente, abbiamo utilizzato il comando INSERT IGNORE 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 nel messaggio viene generato 1 avviso. Puoi quindi presumere che se stiamo usando la clausola INSERT IGNORE, MySQL fornisce un avviso.

Come puoi vedere dall'output seguente, abbiamo solo due record in questa tabella: il primo elenco di valori fornito nella query precedente, che viene trascurato.

>> SELEZIONA * DAI dati.ministro;

Conclusione:

Abbiamo eseguito tutti gli esempi necessari di INSERT IGNORE su valori duplicati tramite MySQL Workbench e shell client da riga di comando MySQL.

Rimappa i pulsanti del mouse in modo diverso per software diversi con X-Mouse Button Control
Forse hai bisogno di uno strumento che possa cambiare il controllo del tuo mouse con ogni applicazione che utilizzi. In questo caso, puoi provare un'a...
Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...
Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...