sql >> データベース >  >> RDS >> Mysql

Oracle Database Link-MySQLと同等ですか?

    あなたのシナリオで考えられる4つの回避策を考えることができます:

    1. external を照会するときは、完全修飾テーブル名を使用してください テーブル。 MySQLはdbname.tablenameをサポートしています -現在のデータベーススコープ外のテーブルにアクセスするための構文。これには、現在接続しているユーザーが、別の物理データベース内の要求されたテーブルから読み取るための適切な権限を持っている必要があります。
    2. 外部データベースが別のMySQLサーバー(同じマシン上またはネットワーク接続経由​​)で実行されている場合は、レプリケーションを使用して、リモートテーブルの読み取り専用コピーを常に更新できます。 レプリケーションは、2つの別々のMySQLインスタンスを実行している場合にのみ可能です。
    3. FEDERATED MySQLストレージエンジン 実質的にインポートする テーブルを現在のデータベースに追加します。これにより、 CREATE TABLE で資格情報が与えられるため、現在のユーザーに2番目のデータベースへのアクセス権を与える必要がなくなります。 - FEDERATEDを使用する場合のステートメント ストレージエンジン。これは、さまざまな物理サーバーまたはさまざまなMySQLインスタンスで実行されているデータベースでも機能します。これはパフォーマンスが最も低いオプションであり、制限 -使用シナリオと要件に応じて、多かれ少なかれ重要です。
    4. これはメソッド1の拡張です。外部に情報を要求するたびに完全修飾テーブル名を指定する必要はありません。 テーブルでは、ビュー を作成するだけです。 単純なSELECT<> FROM <>。<>に基づく現在のデータベース内 。これは、 FEDERATEDの方法に似ています -メソッドは機能しますが、同じMySQLインスタンス上のテーブルに制限されます。

      個人的には、方法(4)が最も便利だと思いますが、要件によっては、他の方法も可能な回避策になる可能性があります。



      1. CLOBフィールドをファイルにダンプしますか?

      2. SQLServerデータベース内のすべてのNULL可能列を一覧表示します

      3. MariaDB ROW_COUNT()の説明

      4. 別のテーブルの列を更新する挿入トリガー後のmysql