如何让PyCharm识别SQL语句中的占位符?

时间:2016-03-18 11:14:00

标签: pycharm code-inspection

我正在使用PyCharm,我在这个SQL语句上有错误:

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

代码语法检查说:

<expression> expected, got '%'

有没有办法禁用此错误消息?换句话说,如何让PyCharm识别SQL语句中的占位符?

修改

这是我的解决方案:

对于%(id)s%s,您必须在%\((\w+)\)s中拥有%sSettings/Preferences | Tools | Database | User parameters并且不仅选择All languages SQL

2 个答案:

答案 0 :(得分:23)

这个SQL是在SQL控制台中,还是在Python脚本中的字符串中?我有同样的问题并通过选中模式列表上方的框来解决它,标记为“使用SQL注入启用字符串文字”。如果您在SQL控制台窗口中执行此操作,请选中第一个框。

正如@LazyOne所说,转到Settings/Preferences > Tools > Database > User Parameters,您会在顶部看到两个复选框:
Enable in console and SQL files
Enable in string literals with SQL injection

虽然您可以添加自己的自定义模式,但我相信与此参数语法匹配的模式(对我而言,psycopg2的参数在Postgres中使用)在Pycharm中是开箱即用的,列表中的最后一个

见此处参考:
https://www.jetbrains.com/help/pycharm/2016.1/user-parameters.html

答案 1 :(得分:0)

除了@Nate的答案(内置正则表达式=IIF(RunningValue(Field!Step.Value,CountDistinct,"StepRange")>1, "", Field!FIELDNAME.Value) 适用于PostgreSQL),我设法只通过重新排序模式并将目标正则表达式移到列表顶部 即可。

还可以尝试禁用其他规则,看看是否有帮助。