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

PolarDB:リスクの高いSQL文に対する自動保護

最終更新日:May 29, 2024

誤操作によるデータ損失を防ぐため、PolarDB-X 1.0は、WHEREまたはLIMIT句のないDELETEステートメントやWHEREまたはLIMIT句のないUPDATEステートメントなど、リスクの高いSQLステートメントをデフォルトで禁止しています。 フルテーブルの削除または更新を実行する必要がある場合は、対応するステートメントにヒントを追加することで、上記の保護をスキップできます。

ステートメント

UPDATEステートメントまたはDELETEステートメントに次のヒントを追加して、フルテーブルの削除または更新を実行できます。

/! TDDL:FORBID_EXECUTE_DML_ALL=false */ 

  • DELETEステートメントにWHERE句またはLIMIT句が含まれていない場合、このステートメントの実行は阻止され、次のエラーメッセージが表示されます
    。ERR-CODE: [TDDL-4620][ERR_FORBID_EXECUTE_DML_ALL] Forbid execute ALLまたはUPDATE ALL sql. 詳細: [http://
    example.aliyundoc.com/faq/faqByFaqCode.html?faqCode=TDDL-4620] 
    次のヒントがステートメントに追加された後、操作は成功します。
    /!TDDL:FORBID_EXECUTE_DML_ALL=false */DELETE FROM tt;
    クエリOK、影響を受ける10行 (0.21秒) 
  • UPDATEステートメントにWHERE句またはLIMIT句が含まれていない場合、このステートメントの実行が阻止され、次のエラーメッセージが表示されます
    。UPDATE tt SET id = 1;
    ERR-CODE: [TDDL-4620][ERR_FORBID_EXECUTE_DML_ALL] Forbid execute ALLまたはUPDATE ALL sql. もっと: [http://example.aliyundoc.com/faq/faqByFaqCode.html?faqCode=TDDL-4620] 
    次のヒントがステートメントに追加された後、操作は成功します。
    /!TDDL:FORBID_EXECUTE_DML_ALL=false */UPDATE tt SET id = 1;
    クエリOK、影響を受ける10行 (0.21秒)