DELETEステートメントを実行して、条件を満たす行をテーブルから削除できます。
構文
次のDELETEステートメントは、tbl_name
で指定されたテーブルからwhere_condition
で指定された条件を満たす行を削除し、削除された行の数を返します。 WHERE条件を指定しない場合、指定されたテーブルのすべてのデータが削除されます。
- 単一の論理テーブル。
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM [schema_name.]tbl_name [WHERE where_condition]
- 複数の論理テーブル。
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[. *]] ... table_referencesから [WHERE where_condition] DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM [schema_name.]tbl_name[.*] [, [schema_name.]tbl_name[.]. *]] ... テーブル参照の使用 [WHERE where_condition]
説明
- DELETEステートメントは、次の修飾子をサポートします。
- LOW_PRIORITYを指定した場合、テーブルからのすべての読み取り操作が完了した後にDELETE操作が実行されます。
- IGNOREを指定した場合、削除プロセス中のエラーは無視されます。
- QUICKはMySQLのストレージエンジンに関連しています。 詳細については、「MySQLドキュメント」をご参照ください。
- DELETEステートメントの各修飾子は、ストレージレイヤーMySQLにプッシュされ、変更されません。 このプロセスは、PolarDB-X 1.0の修飾子操作には影響しません。
構文の制限
ネイティブMySQLのDELETE構文と比較して、PolarDB-X 1.0のDELETE構文には次の制限があります。
デフォルトでは、DELETEステートメントが10,000行を超える行を削除する必要があり、ステートメントをプッシュダウンできない場合は禁止されます。 この場合、次の例に示すように、DELETEステートメントをサポートできるようにヒントを使用する必要があります。
は名前LIMITの10001によってt1順序から削除します;
t1、t2をt1 INNERから削除するt2 INNER JOIN t3 t1.id=t2.idおよびt2.id=t3.name LIMIT 10001;
t1、t2から削除t1 INNER JOIN t2 INNER JOIN t3ここでt1.id=t2.idおよびt2.id=t3.name LIMIT 10001;
説明 t1、t2、t3のシャードキーはIDです。