UPDATE - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

UPDATE

Aggiorna i valori in una o più colonne della tabella quando una condizione è soddisfatta.

Nota

La dimensione massima per una singola SQL istruzione è 16 MB.

Sintassi

[ WITH [RECURSIVE] common_table_expression [, common_table_expression , ...] ] UPDATE table_name [ [ AS ] alias ] SET column = { expression | DEFAULT } [,...] [ FROM fromlist ] [ WHERE condition ]

Parametri

WITHClausola

Clausola facoltativa che ne specifica una o più. common-table-expressions Per informazioni, consulta Clausola WITH.

table_name

Tabella temporanea o persistente. Solo il proprietario della tabella o un utente con UPDATE privilegi sulla tabella può aggiornare le righe. Se si utilizza la FROM clausola o si seleziona una delle tabelle in un'espressione o condizione, è necessario disporre dei SELECT privilegi su tali tabelle. Non è possibile assegnare un alias alla tabella qui; tuttavia, è possibile specificare un alias nella clausola. FROM

Nota

Le tabelle esterne di Amazon Redshift Spectrum sono di sola lettura. Non è possibile creare UPDATE una tabella esterna.

alias

Nome alternativo temporaneo per una tabella di destinazione. Gli alias sono facoltativi. La parola chiave AS è sempre facoltativa.

SETcolonna =

Una o più colonne che vuoi modificare. Le colonne che non sono elencate mantengono i rispettivi valori correnti. Non includere il nome della tabella nella specifica di una colonna di destinazione. Ad esempio, UPDATE tab SET tab.col = 1 non è valido.

espressione

Espressione che definisce il nuovo valore per la colonna specificata.

DEFAULT

Aggiorna la colonna con il valore predefinito assegnato alla colonna nell'CREATETABLEistruzione.

FROMelenco di tabelle

Puoi aggiornare una tabella facendo riferimento alle informazioni presenti in altre tabelle. Elenca queste altre tabelle nella FROM clausola o usa una sottoquery come parte della condizione. WHERE Le tabelle elencate nella FROM clausola possono avere alias. Se è necessario includere la tabella di destinazione dell'UPDATEistruzione nell'elenco, utilizzare un alias.

WHEREcondizione

Clausola facoltativa che limita gli aggiornamenti alle righe che corrispondono a una condizione. Quando la condizione viene true ripristinata, le SET colonne specificate vengono aggiornate. La condizione può essere un semplice predicato su una colonna o una condizione basata sul risultato di una sottoquery.

È possibile assegnare un nome a qualsiasi tabella nella sottoquery, inclusa la tabella di destinazione per. UPDATE

Note per l'utilizzo

Dopo aver aggiornato un numero elevato di righe in una tabella:

  • Applica l'operazione di vacuum alla tabella per recuperare spazio di memorizzazione e riordinare le righe.

  • Analizza la tabella per aggiornare le statistiche del pianificatore di query.

I join esterni sinistro, destro e completo non sono supportati nella FROM clausola di un'UPDATEistruzione; restituiscono il seguente errore:

ERROR: Target table must be part of an equijoin predicate

Se è necessario specificare un outer join, utilizzare una sottoquery nella WHERE clausola dell'istruzione. UPDATE

Se l'UPDATEistruzione richiede un self-join alla tabella di destinazione, è necessario specificare la condizione di join e i criteri della WHERE clausola che qualificano le righe per l'operazione di aggiornamento. In generale, quando la tabella di destinazione viene unita a se stessa o a un'altra tabella, una best practice è utilizzare una sottoquery che separa chiaramente le condizioni di join dai criteri che qualificano le righe per gli aggiornamenti.

UPDATEle interrogazioni con più corrispondenze per riga generano un errore quando il parametro di configurazione error_on_nondeterministic_update è impostato su true. Per ulteriori informazioni, consulta error_on_nondeterministic_update.

È possibile aggiornare una IDENTITY colonna GENERATED BY DEFAULT AS. Le colonne definite come GENERATED BY DEFAULT AS IDENTITY possono essere aggiornate con i valori forniti dall'utente. Per ulteriori informazioni, consulta GENERATED BY DEFAULT AS IDENTITY.