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

Pernyataan yang Disiapkan tentang Postgresql di Rails

Jika Anda ingin menggunakan prepare seperti itu maka Anda harus membuat beberapa perubahan:

  1. Driver PostgreSQL ingin melihat placeholder bernomor ($1 , $2 , ...) bukan tanda tanya dan Anda harus memberi nama pernyataan yang telah Anda siapkan:

     ActiveRecord::Base.connection.raw_connection.prepare('some_name', "DELETE FROM my_table WHERE id = $1")
    
  2. Urutan pemanggilannya adalah prepare diikuti oleh exec_prepared :

    connection = ActiveRecord::Base.connection.raw_connection
    connection.prepare('some_name', "DELETE FROM my_table WHERE id = $1")
    st = connection.exec_prepared('some_name', [ id ])
    

Pendekatan di atas bekerja untuk saya dengan ActiveRecord dan PostgreSQL, PG::Connection.open Anda versi akan berfungsi jika Anda terhubung dengan benar.

Cara lain adalah dengan mengutip sendiri:

conn = ActiveRecord::Base.connection
conn.execute(%Q{
    delete from my_table
    where id = #{conn.quote(id)}
})

Hal seperti itulah yang biasanya dilakukan ActiveRecord di belakang Anda.

Berinteraksi langsung dengan database cenderung sedikit berantakan dengan Rails karena orang-orang Rails tidak berpikir Anda harus melakukannya.

Jika Anda benar-benar hanya mencoba menghapus satu baris tanpa gangguan, Anda dapat menggunakan delete :

hapus()

[...]

Baris hanya dihapus dengan SQL DELETE pernyataan pada kunci utama record, dan tidak ada panggilan balik yang dieksekusi.

Jadi Anda bisa mengatakan ini:

MyTable.delete(id)

dan Anda akan mengirim delete from my_tables where id = ... ke dalam basis data.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 Cara Mendaftar Semua Fungsi di PostgreSQL

  2. Bagaimana cara menginstal paket Python di Linux sehingga ditemukan oleh ekstensi PostgreSQL 13 plpython3u yang sudah berfungsi?

  3. BERGABUNG (PILIH ... ) pada 1=1?

  4. Bagaimana cara menggunakan skema di Django?

  5. Membuat Cold Standby untuk PostgreSQL Menggunakan Amazon AWS