PyCharm を使用していますが、次の SQL ステートメントでエラーが発生します。
SELECT * FROM table WHERE id= %(id)s
コード構文検査では次のように表示されます:
<expression> expected, got '%'
このエラー メッセージを無効にする方法はありますか? つまり、PyCharm に SQL ステートメント内のプレースホルダーを認識させるにはどうすればよいですか?
編集
これが私の解決策です:
とするに%(id)s
は、SQLだけでなく、%s
%\((\w+)\)s
%s
Settings/Preferences | Tools | Database | User parameters
All languages
ベストアンサー1
これは SQL コンソール内の SQL ですか、それとも Python スクリプト内の文字列内ですか? 私も同じ問題を抱えていましたが、パターン リストの上にある「SQL インジェクションの文字列リテラルで有効にする」というラベルの付いたボックスをチェックすることで解決しました。SQL コンソール ウィンドウでこれを実行する場合は、最初のボックスをチェックしてください。
@LazyOne が指摘しているように、 に移動するSettings/Preferences > Tools > Database > User Parameters
と、上部に 2 つのチェックボックスが表示されます。
Enable in console and SQL files
Enable in string literals with SQL injection
独自のカスタム パターンを追加することもできますが、このパラメーター構文に一致するパターン (私の場合は、Postgres で使用する psycopg2 のパラメーター) は、リストの最後の Pycharm にすぐに使用できると思います。
参考までにこちらを参照してください:
https://www.jetbrains.com/help/pycharm/2016.1/ユーザーパラメータ.html