web-dev-qa-db-fra.com

Clé étrangère MySQL InnoDB entre différentes bases de données

Je voudrais savoir s'il est possible dans InnoDB dans MySQL d'avoir un table avec clé étrangère qui fait référence à une autre table dans un autre database?

Et si oui, comment cela peut-il être fait?

61
Alaa

Je ne vois aucune limitation sur http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html .

Il suffit donc d'utiliser otherdb.othertable et vous serez bon.

58
BarsMonster

C'est possible: Lien pour le faire

Exemple (Table1 est dans database1 et HelloTable est dans database2):

ALTER TABLE Table1 
ADD foreign key FK_table1(ColumnNameFromTable1)
REFERENCES db2.HelloTable(ColumnNameFromHelloTable)
20
Spilarix

Voici comment ajouter une clé étrangère sur le tableau t2, référence du tableau db1.historial (codh):

alter table t2
add foreign key FK_t2(micod2)
    references db1.historial(codh)
    on delete cascade
    on update cascade;
4
Salim