WordPressやSymfonyのTipsを中心にアニメや日常の出来事について語ります。
メニュー

【Symfony2】Oracleのデータベースリンクを使って外部データベースを参照したり、結合したりする方法

この記事は約1分14秒で読めます

symfony2
ゆっきー
ども、カフェブロガーの悠木です。 お気に入りのカフェはドトールコーヒーです。 14時からの限定スイーツ「シューシャポー」が大好きです。

前回の記事で「【Symfony2】複数のエンティティマネージャと連携する方法」を書きましたが、データベースリンクを使って外部データベースを参照すると結合(JOIN)がうまくできたのでご紹介します。
Oracleではデータベースリンクという便利な機能がありましたが、同様の機能はMySQLにもあるんでしょうか・・・?

他のデータベースでも使えたら情報いただけるとうれしいです。

データベースリンクとは

他のデータベースにあるテーブルなどのオブジェクトを、あたかも自身のデータベースにあるテーブル等としてアクセスしたい場合はDATABASE LINKを作成すれば実現できます。
DATABASE LINK(データベースリンク)|オラクルちょこっとリファレンス

データベースリンクを使って外部データベースを参照したり、結合したりする方法

データベースリンクを作成する

データベースリンクのコマンドまとめです。

データベースリンク名は何でもOK。接続情報は間違っていてもそのままままデータベースリンクが作成されてしまうので、ちゃんとログインできるか確認してから正しい接続情報を入力してください。
間違ったらALTERで変更するよりDROPして作り直したほうが早いです。

エンティティでテーブル参照先にデータベースリンクを指定する

* @ORM\Table(name="USER@dblinkname")
テーブルの参照先アノテーションで指定していますが、@以降に作成したデータベースリンク名を追記します。

これで通常のエンティティと同じように扱えます。

前回紹介した複数エンティティマネージャを連携する記事よりデータベースリンクの使う方が融通利きます。
JOIN句を使った結合も問題ありません。

参考サイト

Symfony2おすすめ書籍

関連記事

  1. Symfony MonologでSQLクエリーを出力
  2. symfony2
  3. symfony2
  4. 第2回!神田ラウンジ勉強会 WordPress Symfony2
  5. symfony2
  6. Symfony2のブログチュートリアル! 〜MAMP環境構築編〜

コメントをお待ちしております

PR

カテゴリー