我使用 MySQL Workbench 来设计我的数据库,然后导出 SQL CREATE 脚本。但是当我运行这个脚本来创建数据库时,我得到一个错误 - errno: 121。
事实证明,MySQL Workbench 为两个约束提供了相同的名称,因为这两个约束使用相同的键(我有一个主键为“roleID”的表,我在另外两个表中引用了这个键)。
有什么办法可以直接在设计器中重命名约束,所以当我对 SQL CREATE 脚本进行正向工程时,它不会出错?
我尝试在设计器中双击关系并给它一个新的标题,但它仍然会生成具有原始名称的脚本。
生成错误的部分生成脚本:
CREATE TABLE IF NOT EXISTS users
.roles
(
roleID
INT NOT NULL AUTO_INCREMENT ,
...
PRIMARY KEY (roleID
) ,
...);
CREATE TABLE IF NOT EXISTS users
.userRoles
(
...
roleID
INT NOT NULL ,
...
CONSTRAINT roleID
FOREIGN KEY (roleID
)
REFERENCES users
.roles
(roleID
));
CREATE TABLE IF NOT EXISTS users
.resourcePrivileges
(
roleID
INT NOT NULL ,
...
CONSTRAINT roleID
FOREIGN KEY (roleID
)
REFERENCES users
.roles
(roleID
));