

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# SVL\_MULTI\_STATEMENT\_VIOLATIONS
<a name="r_SVL_MULTI_STATEMENT_VIOLATIONS"></a>

SVL\_MULTI\_STATEMENT\_VIOLATIONS ビューを使用して、トランザクションブロックの制限に違反するシステムで実行されたすべての SQL コマンドの完全なレコードを取得します。

Amazon Redshift がトランザクションブロックまたはマルチステートメントのリクエスト内で制限する次の SQL コマンドのいずれかを実行すると、違反が発生します。
+ [CREATE DATABASE](r_CREATE_DATABASE.md)
+ [DROP DATABASE](r_DROP_DATABASE.md)
+ [ALTER TABLE APPEND](r_ALTER_TABLE_APPEND.md)
+ [CREATE EXTERNAL TABLE](r_CREATE_EXTERNAL_TABLE.md)
+ DROP EXTERNAL TABLE
+ RENAME EXTERNAL TABLE
+ ALTER EXTERNAL TABLE
+ CREATE TABLESPACE
+ DROP TABLESPACE
+ [ライブラリを作成する](r_CREATE_LIBRARY.md)
+ [DROP LIBRARY](r_DROP_LIBRARY.md)
+ REBUILDCAT
+ INDEXCAT
+ REINDEX DATABASE
+ [VACUUM](r_VACUUM_command.md)
+ [GRANT](r_GRANT.md)
+ [COPY](r_COPY.md)

**注記**  
このビューにエントリがある場合は、対応するアプリケーションおよび SQL スクリプトを変更します。アプリケーションコードを変更して、これらの制限された SQL コマンドの使用をトランザクションブロックの外に移動することをお勧めします。さらにサポートが必要な場合は、AWS サポートにお問い合わせください。

SVL\_MULTI\_STATEMENT\_VIOLATIONS はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「[システムテーブルとビューのデータの可視性](cm_chap_system-tables.md#c_visibility-of-data)」を参照してください。

このテーブルの一部またはすべてのデータは、SYS モニタリングビュー [SYS\_QUERY\_HISTORY](SYS_QUERY_HISTORY.md) でも確認できます。SYS モニタリングビューのデータは、使いやすく理解しやすいようにフォーマットされます。クエリには、SYS モニタリングビューを使用することをお勧めします。

## テーブルの列
<a name="r_SVL_MULTI_STATEMENT_VIOLATIONS-table-columns"></a>


| 列名  | データ型  | 説明  | 
| --- | --- | --- | 
| userid  | integer  | 違反の原因となったユーザーの ID。 | 
| database  | character(32)  | ユーザーが接続されたデータベースの名前。 | 
| cmdname  | character(20)  | トランザクションブロックまたはマルチステートメントのリクエスト内で実行できないコマンドの名前。例えば、CREATE DATABASE、DROP DATABASE、ALTER TABLE APPEND、CREATE EXTERNAL TABLE、DROP EXTERNAL TABLE、RENAME EXTERNAL TABLE、ALTER EXTERNAL TABLE、CREATE LIBRARY、DROP LIBRARY、REBUILDCAT、INDEXCAT、REINDEX DATABASE、VACUUM、外部リソースでの GRANT、CLUSTER、COPY、CREATE TABLESPACE、および DROP TABLESPACE があります。 | 
| xid  | bigint  | ステートメントに関連付けられるトランザクション ID。 | 
| pid  | integer  | ステートメントのプロセス ID。 | 
| label  | character(320)  | クエリを実行するために使用される名前、または SET QUERY\_GROUP コマンドによって定義されるラベル。クエリがファイルベースでないか、QUERY\_GROUP パラメータが設定されていない場合、このフィールドは空になります。 | 
| starttime  | timestamp | ステートメントの実行が開始された正確な時刻。秒の小数部の精度 (6 桁) を使用します (例: 2009-06-12 11:29:19.131358)。 | 
| endtime  | timestamp | ステートメントの実行が終了した正確な時刻。秒の小数部の精度 (6 桁) を使用します (例: 2009-06-12 11:29:19.193640)。 | 
| sequence  | integer  | 1 つのステートメントに含まれる文字数が 200 を超える場合、そのステートメントは追加の行に記録されます。シーケンス 0 が最初の行、1 が 2 番目の行、という順番です。 | 
| type  | varchar(10)  | SQL ステートメントのタイプ。QUERY、DDL、または UTILITY です。 | 
| text  | character(200)  | 200 文字単位の SQL テキスト。このフィールドには、バックスラッシュ (\\\\) や改行 (\\n) などの特殊文字が含まれる場合があります。 | 

## サンプルクエリ
<a name="r_SVL_MULTI_STATEMENT_VIOLATIONS-sample-query"></a>

次のクエリは、違反がある複数のステートメントを返します。

```
select * from svl_multi_statement_violations order by starttime asc;

userid | database | cmdname | xid | pid | label | starttime | endtime | sequence | type | text
==============================================================================================================================
1 | dev | CREATE DATABASE | 1034 | 5729 |label1 | ********* | ******* | 0 | DDL | create table c(b int);
1 | dev | CREATE DATABASE | 1034 | 5729 |label1 | ********* | ******* | 0 | UTILITY | create database b;
1 | dev | CREATE DATABASE | 1034 | 5729 |label1 | ********* | ******* | 0 | UTILITY | COMMIT
...
```