Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wykonaj jednorazowe zapytanie do innej bazy danych i tabeli

Zakładając, że jest dostępny przy użyciu tych samych poświadczeń bazy danych i na tym samym serwerze MySQL, najprostszym sposobem byłoby uruchomienie zapytania określającego bazę danych i tabelę w FROM klauzula zapytania, jako taka:

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

select_one zwróci hash kolumn do wartości. Aby uzyskać więcej informacji na temat metod, których możesz użyć w connection obiektu, zobacz tę dokumentację .

Drugą opcją jest utworzenie podklasy ActiveRecord i wywołanie establish_connection :

class Blog < ActiveRecord::Base
  establish_connection :blog

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

Będziesz także musiał założyć blog wpis bazy danych w twoim database.yml plik. Zobacz ustanowienie_połączenia aby uzyskać więcej informacji, chociaż niestety użycie go w ten sposób jest tak naprawdę znane tylko z kodu źródłowego dla establish_connection .

Następnie możesz użyć połączenia z bazą danych bloga w zapytaniach, na przykład:

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

Co jest miłe w robieniu tego w ten sposób, to teraz masz ładne miejsce na zdefiniowanie metody (w klasie Blog, jako metody klasy) do pobierania danych, tak jak zrobiłem powyżej.

Obie te strategie powinny działać dobrze z Rails 2.x lub 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. Jak działa zawieszenie transakcji w MySQL?

  2. Zachowaj znaki specjalne podczas importowania do mysql z csv

  3. Dlaczego liczność indeksu w MySQL pozostaje niezmieniona po dodaniu nowego indeksu?

  4. Czy numeryczne klucze podstawowe usuniętych rekordów w bazie danych są ponownie wykorzystywane w przyszłych nowych rekordach?

  5. Obiekt klasy yii\db\Command nie mógł zostać przekonwertowany na ciąg