How do I make PyCharm recognize placeholders in SQL statements?

后端 未结 2 1083
灰色年华
灰色年华 2021-02-05 07:18

I\'m using PyCharm and I have an error on this SQL statement:

SELECT * FROM table WHERE id= %(id)s

The code syntax inspection says:

<         


        
相关标签:
2条回答
  • 2021-02-05 07:58

    In addition to @Nate's answer (built-in regex %\((\w+)\)s works for PostgreSQL), i've managed to get this work only via reordering the patterns and moving target regex to the top of the list.

    One could also try to disable other rules and see if that helps.

    0 讨论(0)
  • 2021-02-05 07:59

    Is this SQL in a SQL console, or in a string in a Python script? I had this same issue and solved it by checking the box above the list of patterns, labeled "Enable in string literals with SQL injection". If you're doing this in a SQL console window, check the first box.

    As @LazyOne notes, go to Settings/Preferences > Tools > Database > User Parameters and you'll see two checkboxes at the top:
    Enable in console and SQL files
    Enable in string literals with SQL injection

    While you can add your own custom patters, I believe the pattern that matches this parameter syntax (for me, parameters for psycopg2 for use in Postgres) is out-of-the-box in Pycharm, the last one in the list.

    See here for reference:
    https://www.jetbrains.com/help/pycharm/2016.1/user-parameters.html

    0 讨论(0)
提交回复
热议问题