

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Contoh tulis bersamaan
<a name="r_Serializable_isolation_example"></a>

Contoh pseudo-code berikut menunjukkan bagaimana transaksi berjalan atau menunggu saat dijalankan secara bersamaan.

## Contoh tulis bersamaan dengan isolasi serial
<a name="r_Serializable_isolation_example-serializable"></a>

### Operasi COPY bersamaan ke dalam tabel yang sama dengan isolasi serial
<a name="r_Serializable_isolation_example-concurrent-copy-operations-into-the-same-table"></a>

Transaksi 1 salinan baris ke dalam tabel LISTING: 

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

Transaksi 2 dimulai secara bersamaan dalam sesi terpisah dan mencoba menyalin lebih banyak baris ke dalam tabel LISTING. Transaksi 2 harus menunggu hingga transaksi 1 melepaskan kunci tulis pada tabel LISTING, kemudian dapat dilanjutkan. 

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

Perilaku yang sama akan terjadi jika salah satu atau kedua transaksi berisi perintah INSERT alih-alih perintah COPY.

### Operasi DELETE bersamaan dari tabel yang sama dengan isolasi serial
<a name="r_Serializable_isolation_example-concurrent-delete-operations-from-the-same-table"></a>

Transaksi 1 menghapus baris dari tabel: 

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

Transaksi 2 dimulai secara bersamaan dan mencoba menghapus baris dari tabel yang sama. Ini akan berhasil karena menunggu transaksi 1 selesai sebelum mencoba menghapus baris.

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

Perilaku yang sama akan terjadi jika salah satu atau kedua transaksi berisi perintah UPDATE ke tabel yang sama, bukan perintah DELETE.

### Transaksi bersamaan dengan campuran operasi baca dan tulis dengan isolasi serial
<a name="r_Serializable_isolation_example-concurrent-transactions"></a>

Dalam contoh ini, transaksi 1 menghapus baris dari tabel USERS, memuat ulang tabel, menjalankan kueri COUNT (\$1), dan kemudian ANALISIS, sebelum melakukan: 

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

Sementara itu, transaksi 2 dimulai. Transaksi ini mencoba menyalin baris tambahan ke dalam tabel USERS, menganalisis tabel, dan kemudian menjalankan kueri COUNT (\$1) yang sama dengan transaksi pertama:

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

Transaksi kedua akan berhasil karena harus menunggu yang pertama selesai. Kueri COUNT-nya akan mengembalikan hitungan berdasarkan beban yang telah diselesaikan.

## Contoh tulis bersamaan dengan isolasi snapshot
<a name="r_Serializable_isolation_example-snapshot"></a>

### Operasi COPY bersamaan ke dalam tabel yang sama dengan isolasi snapshot
<a name="r_Serializable_isolation_example-concurrent-copy-operations-into-the-same-table-snapshot"></a>

Transaksi 1 salinan baris ke dalam tabel LISTING:

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

Transaksi 2 dimulai secara bersamaan dalam sesi terpisah dan mencoba menyalin lebih banyak baris ke dalam tabel LISTING. Transaksi 2 dapat berkembang secara bersamaan hingga salah satu transaksi perlu menulis data ke tabel target`listing`, di mana mereka akan berjalan secara berurutan. 

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

Perilaku yang sama akan terjadi jika salah satu atau kedua transaksi berisi perintah INSERT alih-alih perintah COPY.

### Operasi DELETE bersamaan dari tabel yang sama dengan isolasi snapshot
<a name="r_Serializable_isolation_example-concurrent-delete-operations-from-the-same-table-snapshot"></a>

Operasi DELETE atau UPDATE bersamaan dari tabel yang sama dengan isolasi snapshot berjalan sama seperti operasi yang dijalankan dengan isolasi serializable.

### Transaksi bersamaan dengan campuran operasi baca dan tulis dengan isolasi snapshot
<a name="r_Serializable_isolation_example-concurrent-transactions-snapshot"></a>

Transaksi bersamaan yang dijalankan dengan campuran operasi dengan isolasi snapshot berjalan sama seperti transaksi dengan campuran operasi yang dijalankan dengan isolasi serializable.