2016-03-23 12 views
0

Ich bin Reverse Engineering einer Datenbank in MySQL Workbench, aber es scheint nicht zu importieren oder die Fremdschlüssel zu erkennen. Was bedeutet, ich kann es nicht schaffen, die Beziehungen zu zeichnen.Fremdschlüssel in MySQL Workbench funktioniert nicht?

Während ich versuche, dies zur Arbeit zu bringen, verwende ich einen Ausschnitt von ein paar Tabellen, also ist es nichts komplexes.

Hier sind die 2 Demo-Tabellen, die ich an die Arbeit zu machen versuche:

CREATE TABLE users (
    UserID varchar(32) NOT NULL, 
    OrgID varchar(6) NOT NULL, 
    RegionID int NULL, 
    LocationID int NULL, 
    Name nvarchar(60) NULL, 
    Crypt varchar(32) NULL, 
    Security int NULL, 
    Status int NULL, 
    PRIMARY KEY (UserID), 
    CONSTRAINT fk_OrgID_Users FOREIGN KEY (OrgID) REFERENCES Organisations(OrgID) 
); 


CREATE TABLE Organisations(
    OrgID varchar(6) NOT NULL, 
    Name nvarchar(70) NOT NULL, 
    Address1 varchar(50) NULL, 
    Address2 varchar(50) NULL, 
    Address3 varchar(50) NULL, 
    Town varchar(20) NULL, 
    County varchar(20) NULL, 
    PostCode varchar(10) NULL, 
    NotificationEmail varchar(500) NOT NULL, 
    PRIMARY KEY (OrgID) 
) 

Aber in MySQL Workbench, gibt es keine Beziehungen oder Fremdschlüssel erstellt werden. Wenn ich mir die Tabellendaten und die Registerkarte für die Fremdschlüssel anschaue, gibt es dort nichts?

Ich glaube, ich erstelle die Fremdschlüssel richtig, also gibt es einen Grund, warum er sie nicht importiert?

+0

Diese 2 Tabellen bereits erstellt oder Sie werden sie erstellen. –

Antwort

0

Bei weiterer Forschung gab es mehrere Dinge, die ich tun musste, damit dies funktionierte.

Ich musste sicherstellen, dass die von MySQL reverse-Engineering-Tabellen als InnoDB definiert wurden.

Und ich hatte auch die Fremdschlüssel aus der create table-Befehl zu entfernen und die Fremdschlüssel erstellen, nachdem die Tabellen erstellt wurden, etwa so:

CREATE TABLE Users (
    UserID varchar(32) NOT NULL, 
    OrgID varchar(6) NOT NULL, 
    RegionID int NULL, 
    LocationID int NULL, 
    Name nvarchar(60) NULL, 
    Crypt varchar(32) NULL, 
    Security int NULL, 
    Status int NULL, 
    PRIMARY KEY (UserID) 
) ENGINE=InnoDB; 

CREATE TABLE Organisations(
    OrgID varchar(6) NOT NULL, 
    Name nvarchar(70) NOT NULL, 
    Address1 varchar(50) NULL, 
    Address2 varchar(50) NULL, 
    Address3 varchar(50) NULL, 
    Town varchar(20) NULL, 
    County varchar(20) NULL, 
    PostCode varchar(10) NULL, 
    NotificationEmail varchar(500) NOT NULL, 
    PRIMARY KEY (OrgID) 
) ENGINE=InnoDB; 

ALTER TABLE Users ADD CONSTRAINT fk_OrgID_Users FOREIGN KEY (OrgID) REFERENCES Organisations(OrgID); 

Diese dann funktionierte gut und die Beziehungen waren sichtbar und verbunden in MySQL Workbench

Verwandte Themen