SQL от AI — как вы проверяете, не сливает ли он базу?
Короче, сижу я часто на Copilot, OpenAI и прочих штуках, и мало ли что они подсовывают в итоге. SQL они генерят вроде быстро, но с точки зрения безопасности и адекватности запроса — это отдельная тема.
Что лично делаю я, чтобы не получить потом пожары на проде:
1. Сначала просто внимательно смотрю на синтаксис, чтобы не было явных ошибок типа лишних запятых или неожиданного JOIN без ключа. Порой AI может вставить что-то странное.
2. Проверяю, что запрос не затрагивает лишние таблицы или поля. Особенно если запрос сложный и включает UNION, вложенные подзапросы — тут можно легко угодить в неожиданности.
3. Прогоняю запросы сначала на тесте, а не сразу в живую базу. Лучше потратить 2 минуты, чем потом ковыряться в бэкапах.
4. Обращаю внимание на условия WHERE: часто AI пропускает их или делает не то, что надо, и запрос становится "слишком жадным".
5. Для SELECT иногда отдельно проверяю EXPLAIN, чтобы понять, как база собирается выполнять этот запрос — вдруг есть костыли или полный перебор.
6. Если есть возможность — прохожу через линки к ORM (например, SQLAlchemy или Eloquent) и смотрю, что там выйдет по тому же логическому сценарию.