2010-10-11 6 views

risposta

46

non vedo alcuna limitazione http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html.

Quindi basta usare otherdb.othertable e sarete a posto.

+0

Non riesco a farlo funzionare per MariaDB 10.0.30 però ... – Code4R7

+1

@ Code4R7 Assicurati che le tabelle utilizzino lo stesso motore, come per [documentazione] (https://mariadb.com/kb/en/library/foreign -keys /): "_La genitore e la tabella figlio devono utilizzare lo stesso motore di archiviazione [...]" _ per cambiare il motore del tavolo, 'ALTER tABLE mOTORE my_table = InnoDB;' Ha lavorato per MariaDB 10.1.16 . – iloo

14

E 'possibile: Link to do it

Esempio (Tabella 1 è in Database1 e HelloTable è in database2):

ALTER TABLE Table1 
ADD foreign key FK_table1(ColumnNameFromTable1) 
REFERENCES db2.HelloTable(ColumnNameFromHelloTable) 
+11

+1 bisogna aggiungere che se, oltre al link, aveva si sintetizzato il contenuto di il link nella risposta qui, sarebbe un po 'più utile! – InSane

+3

-1 Un collegamento non è sufficiente, la risposta dovrebbe contenere più informazioni (spiegazione o esempio). – automatix

3

Di seguito è come aggiungere una chiave esterna sulla tabella T2, riferimento dal tavolo db1.historial (codh):

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