首页 > 数据库 > mysql教程 > 为什么由于约束名称重复而无法创建 MySQL 表?

为什么由于约束名称重复而无法创建 MySQL 表?

Patricia Arquette
发布: 2024-11-26 05:15:24
原创
519 人浏览过

Why Can't I Create My MySQL Table Due to Duplicate Constraint Names?

错误:由于约束名称重复而无法创建表

在将 MySQL 数据库正向工程到 WAMP 服务器中时,您遇到了错误“错误 1005:无法创建表“aquaticstar.link”(错误号:121)。”此错误表明数据库中已存在指定名称的表。

经过进一步调查,发现该问题与重复的约束名称有关。具体来说,Link 表包含名为 id 和 Lesson_id 的外键约束,这些约束也存在于其他表中。此命名冲突会阻止数据库创建链接表。

要解决此问题,您应该将链接表中的外键约束重命名为唯一名称。这可以通过修改执行脚本中的以下几行来实现:

CONSTRAINT `id`
    FOREIGN KEY (`id` )
    REFERENCES `Students` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
CONSTRAINT `lesson_id`
    FOREIGN KEY (`lesson_id` )
    REFERENCES `Schedule` (`lesson_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
登录后复制

例如,您可以将 id 约束重命名为 Student_id,将 Lesson_id 约束重命名为 Schedule_lesson_id。

CONSTRAINT `student_id`
    FOREIGN KEY (`id` )
    REFERENCES `Students` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
CONSTRAINT `schedule_lesson_id`
    FOREIGN KEY (`lesson_id` )
    REFERENCES `Schedule` (`lesson_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
登录后复制

重命名约束后,重新执行脚本即可成功创建链接表。

以上是为什么由于约束名称重复而无法创建 MySQL 表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板