sql >> データベース >  >> RDS >> Mysql

実行せずにmysqlエラーを検出する

    EXPLAIN MySQL 5.6以降を実行している場合は、このトリックを実行します。

    explain update whatever;
    

    クエリに問題がない場合は、実行プランが表示されます。それ以外の場合は、構文エラーを返します。

    下位バージョンのMySQLを実行している場合は、いくつかのオプションが表示されます。

    1. 推奨オプション :本番データベースを少なくとも構造的にミラーリングするテストデータベースを用意します。 。理想的には、クエリが構文的に正しいだけではないことを確認するために、テストデータを入力します。ただし、期待どおりに機能する
    2. トランザクション> すぐにロールバックされます。
    3. 行なしに一致するようにわずかに変更されたバージョンのクエリを実行します。

    例:

    update table set col1 = @val1 where col2 = @val2;
    

    なる:

    update table set col1 = @val1 where (col2 = @val2) and 1=0;
    

    したがって、5.6以降を実行している場合は、EXPLAIN トリックはきちんとしています。そうでない場合は、リストのオプション2と3も巧妙なトリックです。 しかし、一般的には開発を打つ必要があります 開発中のサーバー とにかくクエリ。




    1. OracleのVフォーマット要素について

    2. PHP:未定義の関数mysql_connect()

    3. 日付がMyS​​qlの夏時間にあるかどうかを検出します

    4. Oracleにはフィルタリングされたインデックスの概念がありますか?