2016-10-09 1 views
1

Ich habe zwei MySQL-Datenbanken: master und slave. Die master db enthält das Feld memberid. Wie kann ich memberid im slave db referenzieren? Dies ist, was ich habe versucht, die slave db ohne Erfolg mit:Wie kann ich einen fremden Schlüssel von db1 in db2 mit Hilfe von MySQL referenzieren

DROP TABLE IF EXISTS `attend_date_temp`; 
CREATE TABLE `attend_date_temp` (
`clientid` int(10) unsigned NOT NULL, 
`groupid` int(10) unsigned NOT NULL, 
`memberid` int(10) unsigned NOT NULL, 
KEY `clientid` (`clientid`), 
KEY `memberid` (`memberid`), 
CONSTRAINT `attend_date_temp_ibfk_1` FOREIGN KEY (`clientid`) REFERENCES `clients` (`clientid`) ON DELETE CASCADE ON UPDATE CASCADE, 
CONSTRAINT `attend_date_temp_ibfk_2` FOREIGN KEY (`memberid`) REFERENCES `master.members` (`memberid`) ON DELETE CASCADE ON UPDATE CASCADE 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

Als ich die memberid Fremdschlüssel in der Tabelle anzuzeigen, erhalte ich diese Meldung:

Table 'slave.master.members' doesn't exist.

Kann jemand sagen, mir was ich falsch mache? This is the reference I used. Danke.

+0

Sehen Sie dies - http://dev.mysql.com/doc/refman/5.7/en/innodb-foreign-key-constraints.html –

+0

@ AT-2016 - Ich vermisse etwas, aber ich sehe keine Hilfe dort für die Verwendung eines "Fremdschlüssels" über mehrere Datenbanken hinweg. – Landslyde

Antwort

1
REFERENCES `master.members` 

sollte sein:

REFERENCES `master`.`members` 

Ansonsten versucht er eine Tabelle master.members zu finden in der slave Datenbank genannt.

+0

sstan: Das war die Lösung. Ich habe es sogar letzte Nacht ausprobiert und den FK angesehen, indem ich 'alter' gewählt habe, und es hat mir immer noch 'Table' slave.master.members 'exist exists' gegeben. Aber diesmal habe ich auf den FK selbst geklickt und es hat sich bestätigt. Danke, dass du meine Füße auf den richtigen Weg gebracht hast ... schon wieder :-) – Landslyde

Verwandte Themen