ablog

不器用で落着きのない技術者のメモ

Redshift で BEGIN... END トランザクションステートメントを使用した場合の制約

When non-supported write statements, such as CREATE without TABLE AS, are included in an explicit transaction before the supported write statements, none of the write statements will run on concurrency-scaling clusters.

Concurrency scaling - Amazon Redshift

マルチステートメントのクエリとトランザクショントランザクションブロック外のマルチステートメントのクエリは、現在サポートされていません。そのため、dbeaver のようなクエリエディターを使用していて、書き込みクエリが複数ある場合は、クエリを明示的な BEGIN... END トランザクションステートメントでラップする必要があります。

マルチコマンドのステートメントトランザクションの外部で使用されていて、その最初のコマンドがプロデューサーデータベースへの書き込みである場合、ステートメント内の後続の書き込みコマンドは、そのプロデューサーデータベースに対してのみ許可されます。最初のコマンドが読み取りの場合、後続の書き込みコマンドは、使用対象のデータベースが設定されている場合はそのデータベース、未指定の場合はローカルデータベースに対してのみ許可されます。1 件のトランザクションに含まれる複数の書き込みは、単一のデータベースに対してのみ実行できます。

Amazon Redshift でのデータ共有の読み書きに関する考慮事項 - Amazon Redshift