Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara memanggil prosedur tersimpan MySQL dari Rails?

EDIT:

--

Menggunakan ActiveRecord::Base.connections.exec_query() sejauh yang saya tahu BANYAK pendekatan yang lebih baik hanya karena mengembalikan array hash seperti yang diharapkan, yang ActiveRecord::Base.connections.execute tidak.

Dokumentasi

--

Harap baca hasil edit di atas, saya tinggalkan di bawah untuk referensi.

Meskipun saya menyadari pertanyaan ini cukup lama dan karena tautan yang diposting ohho memiliki 404, saya mengalami kesalahan yang sama baru-baru ini.

Saya dapat memperbaikinya dengan melakukan hal berikut:

result = ActiveRecord::Base.connection.execute("call example_proc()") ActiveRecord::Base.clear_active_connections!

Setelah Anda menghapus koneksi, Anda dapat menjalankan kueri lain yang seperti sebelumnya akan gagal saat mencoba mengakses database melalui Rails atau proc tersimpan lainnya.

http://apidock.com/rails/v3.2.13 /ActiveRecord/Base/clear_active_connections%21/class

--EDIT:

Perlu juga disebutkan bahwa seseorang tidak boleh menyimpan koneksi ActiveRecord dalam variabel sesuai posting leente di tautan

"Jangan simpan di cache!

Jangan simpan koneksi dalam variabel, karena utas lain mungkin mencoba menggunakannya saat sudah diperiksa kembali ke kumpulan koneksi. Lihat:ConnectionPool "

connection = ActiveRecord::Base.connection   #WRONG

threads = (1..100).map do
 Thread.new do
begin
  10.times do
    connection.execute("SELECT SLEEP(1)")  # WRONG
    ActiveRecord::Base.connection.execute("SELECT SLEEP(1)")  # CORRECT
  end
  puts "success"
rescue => e
  puts e.message
   end
  end
end

threads.each(&:join) 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa perbedaan antara MySQL &MySQL2 dengan mempertimbangkan NodeJS?

  2. Kesalahan dalam pembuatan tabel

  3. JPA bertahan banyak ke banyak

  4. Mysqldump lebih dari satu tabel?

  5. Kesulitan menambahkan ID baru (kenaikan otomatis) setelah tabel ada