This is a read-only copy of the MariaDB Knowledgebase generated on 2024-11-13. For the latest, interactive version please visit https://mariadb.com/kb/.

UPDATE

Sintassi

Sintassi per una singola tabella:

UPDATE [LOW_PRIORITY] [IGNORE] tabella
    SET nome_col1={espr1|DEFAULT} [, nome_col2={espr2|DEFAULT}] ...
    [WHERE condizione_where]
    [ORDER BY ...]
    [LIMIT numero]

Sintassi multi-tabella:

UPDATE [LOW_PRIORITY] [IGNORE] tabella
    SET nome_col1={espr1|DEFAULT} [, nome_col2={espr2|DEFAULT}] ...
    [WHERE condizione_where]

Spiegazione

Con la sintassi a tabella singola, l'istruzione UPDATE aggiorna le colonne delle righe esistenti nella tabella specificata, inserendo i nuovi valori. La clausola SET indica quali colonne modificare e i valori che dovranno essere inseriti. Ad ogni valore può essere assegnata un'espressione, o la parola chiave DEFAULT per assegnare esplicitamente a un campo il suo valore di default. La clausola WHERE, se presente, specifica le condizioni che identificano le righe da aggiornare. Senza la clausola WHERE, verranno aggiornate tutte le righe. Se è la clausola ORDER BY è presente, le righe vengono aggiornate nell'ordine specificato. La clausola LIMIT pone un limite al numero di righe da aggiornare.

Con la sintassi multi-tabella, UPDATE aggiorna le righe che soddisfano le condizioni, in tutte le tabelle specificate. In questo caso, non è possibile utilizzare ORDER BY e LIMIT.

condizione_where è un'espressione che viene valutata riga per riga e, se risulta vera, la riga viene aggiornata.

tabella e condizione_where devono essere specificate come spiegato nella pagina SELECT.

E' necessario il privilegio UPDATE solo per le colonne nominate nella update UPDATE che verranno effettivamente modificate. Per le altre colonne, che vengono lette ma non modificate, è sufficiente il permesso SELECT. Si veda GRANT.

L'istruzione UPDATE supporta i seguenti modificatori:

  • Se si usa la parola chiave LOW_PRIORITY, l'esecuzione della UPDATE è ritardato fino a quando non ci saranno più client a leggere la tabella. Questo ha effetto solo per gli Storage Engine che utilizzano il lock a livello di tabella (MyISAM, MEMORY, MERGE).
  • Se si utilizza la parola chiave IGNORE, l'istruzione non si arresta nel caso in cui degli errori si verifichino durante le modifiche. Le righe per le quali si verificano conflitti di chiave duplicata, non vengono aggiornate. Le righe per le quali si tenta di aggiornare i valori provocando un errore di conversione, vengono aggiornatte al valore valido più vicino.

Vedi anche

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.