

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à.

# Comando UPDATE in Amazon QLDB
<a name="ql-reference.update"></a>

**Importante**  
Avviso di fine del supporto: i clienti esistenti potranno utilizzare Amazon QLDB fino alla fine del supporto, il 31/07/2025. Per ulteriori dettagli, consulta [Migrare un registro Amazon QLDB su Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/).

In Amazon QLDB, usa `UPDATE` il comando per modificare il valore di uno o più elementi all'interno di un documento. Se un elemento non esiste, viene inserito.

È inoltre possibile utilizzare questo comando per inserire e rimuovere in modo esplicito elementi specifici all'interno di un documento, in modo simile alle [FROM (INSERT, REMOVE o SET)](ql-reference.from.md) istruzioni.

**Nota**  
Per informazioni su come controllare l'accesso per eseguire questo comando PartiQL su tabelle specifiche, vedere. [Guida introduttiva alla modalità di autorizzazione standard in Amazon QLDB](getting-started-standard-mode.md)

**Topics**
+ [

## Sintassi
](#ql-reference.update.syntax)
+ [

## Parametri
](#ql-reference.update.parameters)
+ [

## Valore restituito
](#ql-reference.update.return)
+ [

## Esempi
](#ql-reference.update.examples)
+ [

## Esecuzione a livello di codice utilizzando il driver
](#ql-reference.update.driver)

## Sintassi
<a name="ql-reference.update.syntax"></a>

**SET DI AGGIORNAMENTO**

Aggiorna uno o più elementi all'interno di un documento. Se un elemento non esiste, viene inserito. È semanticamente uguale all'istruzione [FROM-SET](ql-reference.from.md).

```
UPDATE table_name [ AS table_alias ] [ BY id_alias ]
SET element = data [, element = data, ... ]
[ WHERE condition ]
```

**UPDATE-INSERT**

Inserisce un nuovo elemento all'interno di un documento esistente. Per inserire un nuovo documento di primo livello in una tabella, è necessario utilizzare[INSERT](ql-reference.insert.md).

```
UPDATE table_name [ AS table_alias ] [ BY id_alias ]
INSERT INTO element VALUE data [ AT key_name ]
[ WHERE condition ]
```

**AGGIORNA-RIMUOVI**

Rimuovi un elemento esistente all'interno di un documento o rimuovi un intero documento di primo livello. Quest'ultima è semanticamente la stessa della sintassi tradizionale. [DELETE](ql-reference.delete.md)

```
UPDATE table_name [ AS table_alias ] [ BY id_alias ]
REMOVE element
[ WHERE condition ]
```

## Parametri
<a name="ql-reference.update.parameters"></a>

***table\$1name***  
Il nome della tabella utente contenente i dati da modificare. Le istruzioni DML sono supportate solo nella [visualizzazione utente](working.userdata.md) predefinita. Ogni istruzione può essere eseguita solo su una singola tabella.

**AS *table\$1alias***  
(Facoltativo) Un alias definito dall'utente che si estende su una tabella da aggiornare. La `AS` parola chiave è facoltativa.

**DI *id\$1alias***  
(Facoltativo) Un alias definito dall'utente che si collega al campo di `id` metadati di ogni documento nel set di risultati. L'alias deve essere dichiarato nella clausola utilizzando la `UPDATE` parola chiave. `BY` Ciò è utile quando si desidera filtrare in base all'[ID del documento](working.metadata.md) durante l'interrogazione della visualizzazione utente predefinita. Per ulteriori informazioni, consulta [Utilizzo della clausola BY per interrogare l'ID del documento](working.metadata.by-clause.md).

***element***  
Un elemento del documento da creare o modificare.

***data***  
Un nuovo valore per l'elemento.

**A *key\$1name***  
Un nome chiave da aggiungere all'interno dei documenti da modificare. È necessario specificare il corrispondente `VALUE` insieme al nome della chiave. Questo è necessario per inserire un nuovo valore `AT` in una posizione specifica all'interno di un documento.

**DOVE *condition***  
I criteri di selezione per i documenti da modificare.

**Nota**  
Se si `WHERE` omette la clausola, tutti i documenti della tabella vengono modificati.

## Valore restituito
<a name="ql-reference.update.return"></a>

`documentId`— L'ID univoco di ogni documento aggiornato.

## Esempi
<a name="ql-reference.update.examples"></a>

Aggiorna un campo in un documento. Se il campo non esiste, viene inserito.

```
UPDATE Person AS p
SET p.LicenseNumber = 'HOLLOR123ZZ'
WHERE p.GovId = '111-22-3333'
```

Filtrare in base al campo dei `id` metadati del documento assegnato dal sistema.

```
UPDATE Person AS p BY pid
SET p.LicenseNumber = 'HOLLOR123ZZ'
WHERE pid = 'documentId'
```

Sovrascrivi un intero documento.

```
UPDATE Person AS p
SET p = {
    'FirstName' : 'Rosemarie',
    'LastName' : 'Holloway',
    'DOB' : `1977-06-18T`,
    'GovId' : '111-22-3333',
    'GovIdType' : 'Driver License',
    'Address' : '4637 Melrose Street, Ellensburg, WA, 98926'
}
WHERE p.GovId = '111-22-3333'
```

Modifica il `PersonId` campo del *primo* elemento dell'`Owners.SecondaryOwners`elenco all'interno di un documento.

```
UPDATE VehicleRegistration AS r
SET r.Owners.SecondaryOwners[0].PersonId = 'abc123'
WHERE r.VIN = '1N4AL11D75C109151'
```

Inserisci `{'Mileage':26500}` come coppia nome-valore di primo livello all'interno di un documento della tabella. `Vehicle`

```
UPDATE Vehicle AS v
INSERT INTO v VALUE 26500 AT 'Mileage'
WHERE v.VIN = '1N4AL11D75C109151'
```

Aggiungi `{'PersonId':'abc123'}` come coppia nome-valore nel `Owners.SecondaryOwners` campo di un documento nella tabella. `VehicleRegistration` Nota che questa dichiarazione `Owners.SecondaryOwners` deve già esistere e deve essere un tipo di dati di elenco affinché questa istruzione sia valida. In caso contrario, la parola chiave `AT` è obbligatoria nella `INSERT INTO` clausola.

```
UPDATE VehicleRegistration AS r
INSERT INTO r.Owners.SecondaryOwners VALUE { 'PersonId' : 'abc123' }
WHERE r.VIN = '1N4AL11D75C109151'
```

Inserisci `{'PersonId':'abc123'}` come *primo* elemento nell'`Owners.SecondaryOwners`elenco esistente all'interno di un documento.

```
UPDATE VehicleRegistration AS r
INSERT INTO r.Owners.SecondaryOwners VALUE {'PersonId' : 'abc123'} AT 0
WHERE r.VIN = '1N4AL11D75C109151'
```

Aggiungi più coppie nome-valore all'`Owners.SecondaryOwners`elenco esistente all'interno di un documento.

```
UPDATE VehicleRegistration AS r
INSERT INTO r.Owners.SecondaryOwners << {'PersonId' : 'abc123'}, {'PersonId' : 'def456'} >>
WHERE r.VIN = '1N4AL11D75C109151'
```

Rimuove un elemento esistente all'interno di un documento.

```
UPDATE Person AS p
REMOVE p.Address
WHERE p.GovId = '111-22-3333'
```

Rimuove un intero documento da una tabella.

```
UPDATE Person AS p
REMOVE p
WHERE p.GovId = '111-22-3333'
```

Rimuove il *primo* elemento dell'`Owners.SecondaryOwners`elenco all'interno di un documento della `VehicleRegistration` tabella.

```
UPDATE VehicleRegistration AS r
REMOVE r.Owners.SecondaryOwners[0]
WHERE r.VIN = '1N4AL11D75C109151'
```

## Esecuzione a livello di codice utilizzando il driver
<a name="ql-reference.update.driver"></a>

*Per informazioni su come eseguire questa istruzione a livello di codice utilizzando il driver QLDB, consulta i seguenti tutorial in Guida introduttiva al driver:*
+ Java: \$1 [Tutorial di avvio rapido](driver-quickstart-java.md) [Riferimento al libro di cucina](driver-cookbook-java.md)
+ .NET: [Tutorial di avvio rapido](driver-quickstart-dotnet.md) \$1 [Riferimento al libro di cucina](driver-cookbook-dotnet.md)
+ Vai: [Tutorial di avvio rapido](driver-quickstart-golang.md) \$1 [Riferimento al libro di cucina](driver-cookbook-golang.md)
+ Node.js: [Tutorial di avvio rapido](driver-quickstart-nodejs.md) \$1 [Riferimento al libro di cucina](driver-cookbook-nodejs.md)
+ Python: \$1 [Tutorial di avvio rapido](driver-quickstart-python.md) [Riferimento al libro di cucina](driver-cookbook-python.md)