PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bisakah saya membuat Ecto mencatat SQL mentah?

Ecto hanya menggunakan pernyataan yang disiapkan. Saat menggunakan sintaks kueri ecto, pengenalan injeksi SQL tidak dimungkinkan. Sintaks kueri memverifikasi pada waktu kompilasi bahwa injeksi SQL tidak dimungkinkan.

Menampilkan dengan tepat kueri yang dieksekusi mungkin sulit karena beberapa alasan:

  • Postgrex (dan karenanya Ecto) menggunakan protokol biner postgresql (bukan protokol teks yang paling umum, tetapi kurang efisien), jadi PREPARE kueri tidak pernah benar-benar ada sebagai string.
  • Untuk sebagian besar kasus, semua yang Anda lihat hanyalah satu PREPARE 64237612638712636123(...) AS ... dan kemudian banyak EXECUTE 64237612638712636123(...) yang tidak begitu membantu. Mencoba menghubungkan satu sama lain akan mengerikan.

Dari pengalaman saya, sebagian besar perangkat lunak semacam itu, gunakan pernyataan persiapan dan catat lognya alih-alih kueri mentah, karena jauh lebih membantu dalam memahami perilaku sistem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara MENGUBAH tabel PostgreSQL dan membuat kolom menjadi unik?

  2. Rails 5 SQL Injection

  3. Query SQL untuk mendapatkan daftar hierarki supervisor. karyawan --> supervisor --> supervisor

  4. Mendapatkan semua kueri yang dijalankan Django di postgresql

  5. Cara terbaik untuk menginstal hstore pada banyak skema dalam database Postgres?