Mysql 错误1215:无法添加外键约束。字段具有相同的类型

Mysql 错误1215:无法添加外键约束。字段具有相同的类型,mysql,sql,Mysql,Sql,首先,我已经阅读了所有关于这种错误类型的StackOverflow问题,我不明白为什么会发生这种错误。 我有一个会议表格: CREATE TABLE `meetings` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `description` text, `city` varchar(255) DEFAULT NULL, `start_time` datetime DEFAULT

首先,我已经阅读了所有关于这种错误类型的StackOverflow问题,我不明白为什么会发生这种错误。 我有一个
会议
表格:

CREATE TABLE `meetings` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `description` text,
  `city` varchar(255) DEFAULT NULL,
  `start_time` datetime DEFAULT NULL,
  `end_time` datetime DEFAULT NULL,
  `owner` varchar(128) NOT NULL,
  `is_private` tinyint(1) DEFAULT NULL,
  `priority` int(11) DEFAULT NULL,
  `accepted_count` int(11) DEFAULT NULL,
  `creation_time` datetime DEFAULT CURRENT_TIMESTAMP,
  `main_pic` text,
  PRIMARY KEY (`id`),
  KEY `user_id_idx` (`owner`),
  KEY `city_fk_idx` (`city`),
  KEY `weight_idx` (`priority`),
  CONSTRAINT `city_fk` FOREIGN KEY (`city`) REFERENCES `cities` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `user_id` FOREIGN KEY (`owner`) REFERENCES `users` (`Id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `weight` FOREIGN KEY (`priority`) REFERENCES `priorities` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
我还有一张会议桌

CREATE TABLE `meeting_pictures` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `path` text NOT NULL,
  `meeting_id` int(11) NOT NULL,
  `user_id` varchar(128) NOT NULL,
  PRIMARY KEY (`id`,`meeting_id`),
  KEY `user_id_idx` (`user_id`),
  CONSTRAINT `user_id_fkk` FOREIGN KEY (`user_id`) REFERENCES `users` (`Id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
这就是我尝试添加新FK的方式:

ALTER TABLE `tts`.`meetings` 
ADD CONSTRAINT `meeting_pic_fk1`
  FOREIGN KEY (`id`)
  REFERENCES `tts`.`meeting_pictures` (`meeting_id`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;
每次我都会遇到这样的问题:“错误1215:无法添加外键约束”。为什么会这样?两列的类型相同。如何添加这样的FK


谢谢

会议图片上的主键由两部分组成:
meeting\u id
id
。如果我不得不猜测,您打算将外键约束转到另一个方向:

ALTER TABLE tts.meeting_pictures 
    ADD CONSTRAINT meeting_pic_fk1
      FOREIGN KEY (meeting_id)
      REFERENCES tts.meetings (id)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION;

至少,对我来说,
tts.meeting\u pictures(meeting\u id)
指的是
tts.meeting(id)

不,你还没有全部读过。这是一个常见问题。谷歌“mysql更多错误信息”,带和不带“外键”。或者在谷歌上用“-”同一类型“等来搜索你的错误信息。同样,请阅读并采取行动,否则你得到的只是猜测,不应该发布这些评论。阅读MySQL文档中提到的FK。它会说FK引用声明的PK或UNIQUE NOT NULL。总是用谷歌搜索你的问题/问题/需求的许多清晰、简洁、具体的措辞。如果你找不到答案,就用它作为标题,并概述你的搜索。(真的是你第一个出现这个错误吗?)FK说表和列列表中的值出现在引用的表和列列表的其他地方。您希望在其他位置显示哪些值的子视图?谢谢您的回复,但在这种情况下,每次尝试从会议表中删除实体时都会出现错误,因为它在会议表中具有依赖性。我如何避免这种情况?我也可以从meetin_图片表中删除所有依赖项行吗?