sql >> Database teknologi >  >> RDS >> Mysql

MySQL Cross Server Vælg forespørgsel

hvad med at bruge fødererede tabeller på en af ​​serverne? opret de fødererede tabeller baseret på de fjerntabeller, du vil bruge i forespørgslen, og kør bare din forespørgsel, som om din database var lokal. eksempel nedenfor fra MySQL-websted

Proceduren for at bruge FEDERATED-tabeller er meget enkel. Normalt har du to servere kørende, enten begge på den samme vært eller på forskellige værter. (Det er muligt for en FEDERATED-tabel at bruge en anden tabel, der administreres af den samme server, selvom der ikke er nogen mening i at gøre det.)

Først skal du have en tabel på fjernserveren, som du vil have adgang til ved at bruge en FEDERATED-tabel. Antag, at fjerntabellen er i den fødererede database og er defineret sådan:

CREATE TABLE test_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=MyISAM 
CHARSET=latin1;

Eksemplet bruger en MyISAM-tabel, men tabellen kan bruge en hvilken som helst lagermotor.

Opret derefter en FEDERATED-tabel på den lokale server for at få adgang til fjerntabellen:

CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://[email protected]_host:9306/federated/test_table';

(Før MySQL 5.0.13, brug KOMMENTAR frem for FORBINDELSE.)



  1. Løs PLS-00323-fejl i Oracle

  2. Tips til opgradering af Percona XtraDB Cluster til 8.0

  3. Opret en trigger, der opdaterer en kolonne på én tabel, når en kolonne i en anden tabel opdateres

  4. Annoncering af ClusterControl 1.7.2:Forbedret PostgreSQL backup og support til TimescaleDB &MySQL 8.0