gpt4 book ai didi

mysql - MySQL Workbench 中的外键不起作用?

转载 作者:搜寻专家 更新时间:2023-10-30 22:59:07 26 4
gpt4 key购买 nike

我正在 MySQL Workbench 中对数据库进行逆向工程,但它似乎没有导入或识别外键。这意味着我无法用它来绘制关系。

虽然我试图让它工作,但我正在使用几个表格的片段,所以它并不复杂。

这是我尝试开始工作的 2 个演示表:

    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 )
)

但是在 MySQL Workbench 中,没有创建任何关系或外键。如果我查看表数据和外键选项卡,那里什么也没有?

我想我创建的外键是正确的,那么它不导入它们有什么原因吗?

最佳答案

在进一步的研究中,我需要做几件事才能让它发挥作用。

我必须确保从 MySQL 逆向工程的表被定义为 InnoDB。

而且我还必须从创建表命令中删除外键约束并在创建表后创建外键,如下所示:

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

然后这工作正常,关系在 MySQL Workbench 中可见并连接

关于mysql - MySQL Workbench 中的外键不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36175333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com