0
MESSAGE_MAP表MySQLのエラー番号:150「外部キー制約が間違って形成されている」 - 私は、外部キー制約を適用するには、クエリの下にしようとしたMariaDB
CREATE TABLE `message_map` (
`message_from` varchar(15) NOT NULL,
`message_id` varchar(15) NOT NULL,
`message_to` varchar(15) NOT NULL,
`message_status` bit(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `message_map`
ADD PRIMARY KEY (`message_from`,`message_id`,`message_to`),
ADD KEY `FK_ij6tystusydqijqp8lgoigo1c` (`message_id`),
ユーザテーブル
CREATE TABLE `user` (
`USER_ID` varchar(15) NOT NULL,
`PASSWORD` varchar(15) DEFAULT NULL,
`PHONE_NUMBER` varchar(15) DEFAULT NULL,
`USER_NAME` varchar(15) DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `user`
ADD PRIMARY KEY (`USER_ID`),
ADD UNIQUE KEY `USER_ID_UNIQUE` (`USER_ID`);
を
ALTER TABLE `demo`.`message_map`
ADD CONSTRAINT `FK_MSG_MAP_USER`
FOREIGN KEY (`message_from`)
REFERENCES `demo`.`user` (`USER_ID`)
ON DELETE CASCADE
ON UPDATE CASCADE,
ADD CONSTRAINT `FK_MSG_MAP_USER_TO`
FOREIGN KEY (`message_to`)
REFERENCES `demo`.`user` (`USER_ID`)
ON DELETE CASCADE
ON UPDATE CASCADE;
イム次のエラーに
ERROR 1005を取得:テーブル
<shema>
を作成できません。#sql-1964_4
(エラー番号:150> "外部キー制約が間違って形成されている")
私の観察は
列(message_from、message_to)とUSER_IDのデータ型が同じ あります。また、USER_IDは主キーです。
質問
は、何が間違っていたのですか?
はテストにそれは少し面倒になり、あなたのコード内のエラーの数がある
3列の主キー? – Riad
投稿したコードにエラーがあります。 –
'PRIMARY KEY'は' UNIQUE'キーです。後者を取り除く。冗長です。 –