PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Мога ли да накарам Ecto да регистрира необработен SQL?

Ecto използва само подготвени отчети. Когато използвате синтаксис на ecto заявка, въвеждането на SQL инжекция не е възможно. Синтаксисът на заявката проверява по време на компилиране, че не е възможно SQL инжектиране.

Показването на точно изпълнените заявки може да е трудно поради няколко причини:

  • Postgrex (и следователно Ecto) използва двоичния протокол postgresql (вместо най-разпространения, но по-малко ефективен текстов протокол), така че PREPARE заявката всъщност никога не съществува като низ.
  • В повечето случаи всичко, което ще видите, ще бъде един инициал PREPARE 64237612638712636123(...) AS ... и по-късно много EXECUTE 64237612638712636123(...) което не е толкова полезно. Опитът да се свърже един с друг би бил ужасен.

От моя опит повечето софтуери от този вид използват оператори за подготовка и ги регистрират вместо необработени заявки, тъй като е много по-полезно за разбиране на поведението на системата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преди и след задействане на едно и също събитие? Попълнете дъщерна таблица PostgreSQL

  2. как да създадете ISO-8601 григорианска таблица с дати в postgres

  3. Каква е разликата между локалите на C и Posix в Postgres?

  4. Разделете данните в колоните, разделени със запетая, на допълнителни колони

  5. Изберете N реда със смесени стойности