sql >> Database >  >> RDS >> Mysql

MySQL Cross Server Select Query

hoe zit het met het gebruik van federatieve tabellen op een van de servers? maak de federatieve tabellen op basis van de externe tabellen die u in de query gaat gebruiken en voer uw query uit alsof uw database helemaal lokaal is. voorbeeld hieronder van MySQL-site

De procedure voor het gebruik van FEDERATED-tabellen is heel eenvoudig. Normaal gesproken heb je twee servers draaien, beide op dezelfde host of op verschillende hosts. (Het is mogelijk dat een FEDERATED-tabel een andere tafel gebruikt die door dezelfde server wordt beheerd, hoewel het weinig zin heeft om dit te doen.)

Ten eerste moet u een tabel op de externe server hebben waartoe u toegang wilt door een FEDERATED-tabel te gebruiken. Stel dat de externe tabel zich in de federatieve database bevindt en als volgt is gedefinieerd:

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;

Het voorbeeld gebruikt een MyISAM-tabel, maar de tabel kan elke opslagengine gebruiken.

Maak vervolgens een FEDERATED-tabel op de lokale server voor toegang tot de externe tafel:

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';

(Gebruik vóór MySQL 5.0.13 COMMENT in plaats van VERBINDING.)



  1. Samengestelde primaire sleutel maken in MySQL

  2. Een database herstellen in SQL Server 2017

  3. Bevoegdheden toekennen aan toekomstige tabellen in PostgreSQL?

  4. Android sqlite, beperk het aantal rijen in de database