我正在使用PyCharm,我在这个SQL语句上有错误:
SELECT * FROM table WHERE id= %(id)s
代码语法检查说:
<expression> expected, got '%'
有没有办法禁用此错误消息?换句话说,如何让PyCharm识别SQL语句中的占位符?
修改
这是我的解决方案:
对于%(id)s
和%s
,您必须在%\((\w+)\)s
中拥有%s
和Settings/Preferences | Tools | Database | User parameters
并且不仅选择All languages
SQL
答案 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),我设法只通过重新排序模式并将目标正则表达式移到列表顶部 即可。
还可以尝试禁用其他规则,看看是否有帮助。