Commenti(0)
L’istruzione INSERT in MySQL
L'istruzione INSERT permette l'inserimento di un record in una tabella ecco una rapida guida
L’istruzione SQL INSERT aggiunge nuovi record in una tabella presente sul database MySQL. La sintassi è la seguente:
Quindi se ad esempio vogliamo inserire un record all’interno della tabella persone la sintassi sarà la seguente.
In questo modo andremo ad inserire all’interno della tabella persone e precisamente nei campi Nome, Cognome, Telefono i valori che abbiamo indicato all’interno della clausola VALUES. Nel caso in cui la tabella abbia altri campi, oltre a quelli inseriti, che possono essere nulli, oppure hanno un valore di default assegnato, la tabella verrà aggiornata, altrimenti verrà restituito un messaggio di errore. Quindi ad esempio se la tabella persone oltre ai tre campi indicati nella clausola INSERT INTO, ha un campo “Indirizzo” che può anche non essere valorizzato, la tabella verrà aggiornata ed il campo Indirizzo sarà vuoto, altrimenti, se il campo Indirizzo è stato dichiarato NOT NULL verrà restituito un messaggio di errore.
L’istruzione INSERT prevede anche di omettere la lista colonne da aggiornare. In tal caso bisognerà riempire la lista_valori con tutti i campi della tabella da riempire, altrimenti verrà restituito un messaggio di errore.
Nell’esempio sopra abbiamo inserito dei nuovi valori in una tabella. Ciò non toglie che possono essere inseriti dei valori che sono presenti all’interno di altre tabelle. La sintassi è la seguente
Ad esempio se vogliamo inserire all’interno della tabella persone dei dati della tabella impiegato, la sintassi sarà dunque la seguente:
In questo modo verranno inserite all’interno della tabella persone tutte le righe della tabella impiegato con Cognome pari a ‘Verde’. La clausola SET consente di associare ad ogni colonna di una tabella il valore corrispondente. Ad esempio:
Osserviamo che quest’ istruzione SQL è del tutto identica a quella usata all’inizio nel primo esempio (la tabella persone viene aggiornata alla stessa maniera) con la differenza che all’inizio abbiamo usato la clausola VALUES, nel secondo caso la clausola SET. La differenza tra le due è che con VALUES possiamo inserire più record contemporaneamente in tabella, cosa che non è concessa con la clausola SET. Dunque l’istruzione
inserirà tre nuovi record nella tabella persone.
Le tabelle di tipo MyISAM e Maria, quando devono inserire molti valori all’interno di uno o più indici, usano un algoritmo che permette di farlo abbastanza rapidamente. Di conseguenza, se si devono inserire molti valori in tabelle di questi tipi, è possibile disabilitare gli indici e riabilitarli dopo l’avvenuto inserimento.
Infine c’è da dire che se il record da inserire esiste già in tabella, oppure nei valori da inserire è presente una chiave primaria già presente in tabella, verrà segnalato un messaggio di errore 1062. Per evitare di ricevere questo tipo di messaggio, si può utilizzare la parola chiave IGNORE:
1INSERT IGNORE INTO persone (nome, cognome) VALUES ('Mario', 'Rossi');
A volte l’applicazione non ha bisogno di aspettare che una INSERT venga completata. In questo caso si può utilizzare la parola chiave DELAYED; il server metterà l’istruzione in coda, invierà un messaggio di OK (se la sintassi è corretta) e il client potrà riprendere a lavorare immediatamente. L’unica controindicazione è che non si riceveranno eventuali messaggi di errore (righe duplicate, valori non ammessi, etc). INSERT DELAYED funziona solo sulle tabelle di tipo MyISAM, Maria, MEMORY, ARCHIVE e BLACKHOLE.
1INSERT DELAYED INTO persone (nome, cognome) VALUES ('Mario', 'Rossi');
Condividi su:
Esprimi un voto:
Argomenti chiave:

MySQL Report un tool di shell per tenere tutto sotto controllo