Questo post discuterà l'inserimento di una nuova riga solo se i dati non esistono già nella tabella MySQL. Prima di iniziare con questo post, assicurati di aver effettuato l'accesso al tuo server locale MySQL e di aver scelto un database in cui desideri lavorare.
Inserire una nuova riga Solo se i dati non esistono utilizzando l'istruzione 'INSERT IGNORE'.
Bene, la risposta alla domanda nel titolo è piuttosto semplice e diretta. Usa semplicemente il ' INSERIRE ” parola chiave insieme a “ IGNORARE ' Parola chiave. Ciò assicurerà che i nuovi dati o la query di inserimento vengano eseguiti solo quando non viene trovata alcuna voce precedente dei dati in MySQL. Per avere una breve panoramica di questo, dai un'occhiata alla seguente sintassi:
INSERIRE IGNORARE IN [ tavolo - nome ] ( [ colonna1 - nome ] , [ colonna2 - nome ] , [ colonna3 - nome ] ) VALORI ( [ valore1 ] , [ valore2 ] , [ valore3 ] ) ;
Vediamo un esempio se l'utente vuole inserire un valore di riga ' 1 ”, “ John ' E ' Dai ' nel ' Cliente ” tabella per le colonne “ Id ”, “ Nome di battesimo ' E ' Cognome ” rispettivamente. Esegui questa query per inserire questi valori, se presenti, se non esiste già alcuna riga con questi valori:
SELEZIONARE * DA Cliente;
INSERIRE IGNORARE IN Cliente ( Id , Nome di battesimo , Cognome ) VALORI ( 1 , 'John' , 'cerva' ) ;
L'output contiene due tabelle che visualizzano i dati della tabella prima e dopo l'esecuzione della query. Puoi notare che nulla sta cambiando nella tabella perché la riga esisteva già, quindi MySQL ha ignorato correttamente il processo di inserimento senza visualizzare l'errore:
Inserire una nuova riga Solo se i dati non esistono utilizzando la clausola 'WHERE NOT EXISTS'.
In MySQL, il ' DOVE NON ESISTE La clausola ” impedisce l'inserimento di righe se sono già presenti nella tabella quando viene utilizzata nella “ INSERIRE ” istruzione con una sottoquery per definire una condizione. Quando questa clausola viene utilizzata con la sottoquery ' (SELECT * FROM [nome-tabella] [nome-colonna]=[espressione]); ” controlla se esiste una riga nella tabella che soddisfa la condizione. Se esiste una riga, il ' DOVE NON ESISTE ” restituirà un valore falso e la clausola “ SELEZIONARE L'istruzione ” non restituirà alcuna riga. Di conseguenza, la riga non verrà inserita nella tabella. La sintassi è fornita di seguito:
INSERIRE IN [ tavolo - nome ] ( [ colonna1 - nome ] , [ colonna2 - nome ] , [ colonna3 - nome ] )SELEZIONARE [ valore1 ] , [ valore2 ] , [ valore3 ]
DOVE NON ESISTE ( SELEZIONARE * DA [ tavolo - nome ] [ colonna - nome ] = [ espressione ] ) ;
Vediamo un esempio se l'utente vuole inserire una riga nella tabella dei dipendenti contenente dei valori “ 1 ”, “ americano ' E ' Henriot ” nelle colonne “ id ”, “ Nome della ditta ' E ' Nome del contatto ” rispettivamente. Ma solo se una riga con ID ' 1 ” non si trova nella tabella o non esiste. In quel caso particolare, la query diventerà:
SELEZIONARE * DA dipendente;
INSERIRE IN dipendente ( id , Nome della ditta , Nome del contatto )
SELEZIONARE 1 , 'Americano' , 'Enricot'
DOVE NON ESISTE ( SELEZIONARE * DA dipendente DOVE id = 1 ) ;
L'output visualizza una nuova riga che non viene inserita come riga con ' id ' uguale a ' 1 esisteva già.
Inserire una nuova riga solo se i dati non esistono utilizzando la clausola 'ON DUPLICATE KEY UPDATE'.
Bene, un altro modo è usare il ' IN AGGIORNAMENTO DELLA CHIAVE DUPLICATA clausola ” in MySQL. Poiché questa clausola verrà utilizzata con la query 'INSERT INTO' che forma un'esecuzione 'if-else'. Ciò significa che i dati all'interno della tabella verranno aggiornati solo se sono univoci. In caso contrario, non si verificherebbe alcun cambiamento. La sintassi generale per questo è la seguente:
INSERIRE IN [ tavolo - nome ] ( [ colonna1 - nome ] , [ colonna2 - nome ] , [ colonna3 - nome ] ) VALORI ( [ valore1 ] , [ valore2 ] , [ valore3 ] )SU DUPLICARE CHIAVE AGGIORNAMENTO [ colonna1 - nome ] = [ colonna1 - nome ] ;
Vediamo un esempio, per inserire valori in “ 2 ”, “ Pasquale ”, “ Nixon ”, “ Londra ”, “ UK ' E “(171) 555-7788 ' sul tavolo ' Cliente ” per le colonne “ Id ”, “ Nome di battesimo ”, “ Cognome ”, “ città ”, “ Paese ' E ' telefono ” rispettivamente. Se la riga non esiste già, verrà inserita. In caso contrario, aggiornerà i valori in cui ' Id=Id ” condizione soddisfa. Esegui questa query:
SELEZIONARE * DA Cliente ;INSERIRE IN Cliente ( Id , Nome di battesimo , Cognome , città , Paese , telefono )
VALORI ( 2 , 'Pascale' , 'Nixon' , 'Londra' , 'UK' , '(171) 555-7788' )
SU DUPLICARE CHIAVE AGGIORNAMENTO Id = Id;
Questa è la tabella prima di eseguire la query, puoi vedere ' Id ' uguale a ' 2 ' non esiste:
Dopo aver eseguito la query, questa query inserirà nuove righe nella tabella:
Hai inserito correttamente una nuova riga, poiché i dati non esistono prima di eseguire la query.
Conclusione
In MySQL, inserisci una nuova riga solo se i dati non esistono già utilizzando ' INSERIRE IGNORA ” dichiarazione o “ DOVE NON ESISTE ” clausola nel “ INSERIRE ' dichiarazione. Un altro modo per farlo è usare il ' IN AGGIORNAMENTO DELLA CHIAVE DUPLICATA ” clausola nel “ INSERIRE ” da aggiornare se la riga esiste già. Altrimenti, aggiungi una nuova riga. Il post ha discusso come inserire una nuova riga solo se i dati non esistono.