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

Buat kueri satu kali ke database dan tabel yang berbeda

Dengan asumsi itu dapat diakses menggunakan kredensial database yang sama dan pada server MySQL yang sama, cara termudah adalah dengan menjalankan kueri yang menentukan database dan tabel di FROM klausa kueri, seperti:

ActiveRecord::Base.connection.select_one(
    "SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")

select_one akan mengembalikan hash kolom ke nilai. Untuk informasi lebih lanjut tentang metode yang dapat Anda gunakan di connection objek, lihat dokumentasi ini .

Opsi kedua adalah membuat subkelas ActiveRecord dan memanggil establish_connection :

class Blog < ActiveRecord::Base
  establish_connection :blog

  def self.most_recent_post
    connection.select_one("SELECT * FROM posts ...")
  end
end

Anda juga perlu membuat blog entri database di database.yml . Anda mengajukan. Lihat membangun_koneksi untuk lebih jelasnya, walaupun sayangnya penggunaan cara ini sebenarnya hanya diketahui dengan melihat source code establish_connection .

Kemudian Anda dapat menggunakan koneksi database blog dalam kueri, seperti:

Blog.connection.select_one("SELECT * FROM posts ...")

Apa yang baik tentang melakukannya dengan cara ini sekarang Anda memiliki tempat yang bagus untuk mendefinisikan metode (di kelas Blog, sebagai metode kelas) untuk mengambil data, seperti yang telah saya lakukan di atas.

Kedua strategi ini harus bekerja dengan baik dengan Rails 2.x atau 3.x.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL dinamis mengembalikan 'kesalahan sintaks' di Google Apps Script menggunakan JDBC dan MySQL

  2. Di mana A=1 DAN A=2 mengembalikan 0 masalah baris - (Pertanyaan singkat Mysql)

  3. PHP menyiapkan pernyataan dan transaksi dalam satu lingkaran

  4. Kesalahan dengan MySQLdb di OS X El Capitan

  5. Penggabungan MySQL dan campuran ilegal dari kesalahan collation