

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Ejemplos de escritura simultánea
<a name="r_Serializable_isolation_example"></a>

En los siguientes ejemplos de pseudocódigo, se demuestra cómo, cuando se ejecutan de manera simultánea, las transacciones avanzan o esperan.

## Ejemplos de escritura simultánea con aislamiento serializable
<a name="r_Serializable_isolation_example-serializable"></a>

### Operaciones COPY simultáneas en la misma tabla con aislamiento serializable
<a name="r_Serializable_isolation_example-concurrent-copy-operations-into-the-same-table"></a>

La transacción 1 copia filas en la tabla LISTING: 

```
begin;
copy listing from ...;
end;
```

La transacción 2 comienza de manera simultánea en una sesión por separado y copia más filas en la tabla LISTING. La transacción 2 debe esperar hasta que la transacción 1 levante el bloqueo de escritura de la tabla LISTING; luego, podrá avanzar. 

```
begin;
[waits]
copy listing from ;
end;
```

El mismo comportamiento se observaría si una o ambas transacciones tuvieran un comando INSERT, en lugar de COPY.

### Operaciones DELETE simultáneas desde la misma tabla con aislamiento serializable
<a name="r_Serializable_isolation_example-concurrent-delete-operations-from-the-same-table"></a>

La transacción 1 elimina filas de una tabla: 

```
begin;
delete from listing where ...;
end;
```

La transacción 2 comienza de manera simultánea y elimina filas de la misma tabla. Tendrá éxito porque espera a que la transacción 1 termine antes de probar eliminar filas.

```
begin
[waits]
delete from listing where ;
end;
```

El mismo comportamiento se observaría si una o ambas transacciones tuvieran un comando UPDATE para la misma tabla, en lugar de DELETE.

### Transacciones simultáneas con una mezcla de operaciones de lectura y escritura con aislamiento serializable
<a name="r_Serializable_isolation_example-concurrent-transactions"></a>

En este ejemplo, la transacción 1 elimina filas de la tabla USERS, vuelve a cargar la tabla, ejecuta una consulta COUNT(\$1) y, luego, ANALYZE, antes de confirmar: 

```
begin;
delete one row from USERS table;
copy ;
select count(*) from users;
analyze ;
end;
```

Mientras tanto, comienza la transacción 2. Esta transacción prueba copiar filas adicionales en la tabla USERS, analizarla y, luego, ejecutar la misma consulta COUNT(\$1) que la primera transacción:

```
begin;
[waits]
copy users from ...;
select count(*) from users;
analyze;
end;
```

La segunda transacción tendrá éxito porque debe esperar a que la primera termine. Su consulta COUNT devolverá el recuento en función de la carga que ha completado.

## Ejemplos de escritura simultánea con aislamiento de instantánea
<a name="r_Serializable_isolation_example-snapshot"></a>

### Operaciones de copia simultáneas en la misma tabla con aislamiento de instantánea
<a name="r_Serializable_isolation_example-concurrent-copy-operations-into-the-same-table-snapshot"></a>

La transacción 1 copia filas en la tabla LISTING:

```
begin;
copy listing from ...;
end;
```

La transacción 2 comienza de manera simultánea en una sesión por separado y copia más filas en la tabla LISTING. La transacción 2 puede progresar simultáneamente hasta que cualquiera de las transacciones necesite escribir datos en la tabla de destino `listing`, momento en el que se ejecutarán secuencialmente. 

```
begin; 
//When the COPY statement from T1 needs to write data to the table, the COPY statement from T2 waits.
copy listing from ...; 
end;
```

El mismo comportamiento se observaría si una o ambas transacciones tuvieran un comando INSERT, en lugar de COPY.

### Operaciones DELETE simultáneas desde la misma tabla con aislamiento de instantánea
<a name="r_Serializable_isolation_example-concurrent-delete-operations-from-the-same-table-snapshot"></a>

Las operaciones DELETE y UPDATE simultáneas desde la misma tabla con aislamiento de instantánea se ejecutan igual que las operaciones ejecutadas con aislamiento serializable.

### Transacciones simultáneas con una mezcla de operaciones de lectura y escritura con aislamiento de instantánea
<a name="r_Serializable_isolation_example-concurrent-transactions-snapshot"></a>

Las transacciones simultáneas que se ejecutan con mezclas de operaciones con aislamiento de instantánea se ejecutan igual que las transacciones con mezclas de operaciones que se ejecutan con aislamiento serializable.