すべてのプロダクト
Search
ドキュメントセンター

PolarDB:DELETE

最終更新日:May 28, 2024

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です。