MySQL – Come inserire una nuova riga solo se i dati non esistono

Mysql Come Inserire Una Nuova Riga Solo Se I Dati Non Esistono



MySQL è un famoso RDBMS open source per archiviare i dati nei database. L'inserimento di dati nelle tabelle del database è un'attività comune. A volte, gli utenti non vogliono inserire dati duplicati per eliminare la ridondanza. MySQL consente agli utenti di inserire dati solo se dati simili non esistono già.

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.