まず、このようなエラータイプに関するすべてのStackOverflowの質問を読みました。なぜこのエラーが発生するのか理解できません。 私はmeetings
テーブルがあります。エラー1215:外部キー制約を追加できません。フィールドには同じタイプがあります
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;
私はこれを持っているたびに:私もmeeting_pictures
テーブルを持っている
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;
を私は新しいFKを追加しようとしてみましょう
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;
: "ERROR 1215:外部キー制約を追加できません"。なぜそれが起こっているのですか?両方の列の型は同じです。このようなFKを追加するにはどうすればいいですか? meeting_id
とid
:
おかげ
いいえ、あなたはそれらすべてを読んでいません。これはよくある質問です。 '外部キー'の有無にかかわらずGoogleの「mysql more error info」または、あなたのエラーメッセージを ' - '同じタイプの ''などでGoogleに送信してください。また、[mcve]を読んでください。 MySQLのドキュメントでFKの言及を読んでください。 FKが宣言されたPKまたはUNIQUE NOT NULLを参照していると言います。常にあなたの質問/問題/ desiderataの多くの明確で簡潔な、特定のphrasingsをGoogleにグーグル。答えが見つからない場合は、タイトルと検索の概要を使用してください。 (実際にこのエラーが発生するのは1番目ですか?) – philipxy
FKは、テーブルとカラムのリストの値が、参照されているテーブルとカラムのリストの他の場所に表示されていることを示しています。あなたは他の場所に出現したい価値の下位を何ですか? – philipxy