Как заставить PyCharm распознавать заполнители в операциях SQL?

Я использую PyCharm, и у меня есть ошибка в этом операторе SQL:

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

Проверка синтаксиса кода говорит:

<expression> expected, got '%'

Есть ли способ отключить это сообщение об ошибке? Другими словами, как заставить PyCharm распознавать заполнители в операторах SQL?

Edit

Вот мое решение:

Для %(id)s и %s вы должны иметь %\((\w+)\)s и %s в Settings/Preferences | Tools | Database | User parameters и выбрать All languages не только SQL

Ответы

Ответ 1

Является ли этот SQL в консоли SQL или в строке в Python script? У меня была такая же проблема, и я решил ее, установив флажок над списком шаблонов с надписью "Включить в строковых литералах с помощью 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

Ответ 2

В дополнение к ответу @Nate (встроенное regex %\((\w+)\)s работает для PostgreSQL), мне удалось получить эту работу только путем переупорядочения шаблонов и перемещения целевого регулярного выражения в начало списка.

Можно также попытаться отключить другие правила и посмотреть, помогает ли это.