sql >> Databáze >  >> RDS >> Mysql

Oracle Database Link – ekvivalent MySQL?

Napadají mě čtyři možná řešení pro váš scénář:

  1. při dotazu na externí použijte plně kvalifikované názvy tabulek stůl. MySQL podporuje dbname.tablename -syntaxe pro přístup k tabulkám mimo aktuální rozsah databáze. To vyžaduje, aby aktuálně připojený uživatel měl příslušná práva ke čtení z požadované tabulky v jiné fyzické databázi.
  2. Pokud vaše externí databáze běží na jiném serveru MySQL (buď na stejném počítači nebo prostřednictvím síťového připojení), můžete replikaci použít k neustálé aktualizaci kopie vzdálené tabulky pouze pro čtení. Replikace je možná pouze v případě, že provozujete dvě samostatné instance MySQL.
  3. použijte FEDERATED Úložný modul MySQL virtuálně importovat tabulku do vaší aktuální databáze. Tím se ruší požadavek udělit aktuálnímu uživateli přístupová práva do druhé databáze, protože přihlašovací údaje jsou uvedeny v CREATE TABLE -příkaz při použití FEDERATED skladovací motor. To také funguje s databázemi běžícími na různých fyzických serverech nebo různých instancích MySQL. Myslím, že to bude nejslabší možnost a má nějaké omezení - více či méně důležité v závislosti na vašem scénáři použití a vašich požadavcích.
  4. Toto je rozšíření metody 1. Místo toho, abyste museli zadávat plně kvalifikované názvy tabulek pokaždé, když požadujete informace od svého externího tabulky, můžete jednoduše vytvořit zobrazení uvnitř vaší aktuální databáze na základě jednoduchého SELECT <> FROM <>.<> . Toto se podobá způsobu, FEDERATED -metoda funguje, ale je omezena na tabulky ve stejné instanci MySQL.

    Osobně bych považoval metodu (4) za nejužitečnější – ale ostatní by také mohla být možná řešení v závislosti na vašich požadavcích.



    1. Vytvoření databáze PostgreSQL

    2. Zábavnost poddotazu Oracle

    3. Najít skutečný název sloupce aliasu použitého v pohledu?

    4. chyba při vkládání android.database.sqlite.sqliteconstraintexception error code 19 constraint failed