MySQL5.1.54を実行しています-lubuntu4
私はテーブルを持っています
CREATE TABLE `mcli` (
`id` bigint(20) NOT NULL,
`pr_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FK7617032AB07F537D` (`id`),
KEY `FK7617032A4007E4D7` (`pr_id`),
CONSTRAINT `FK7617032AB07F537D` FOREIGN KEY (`id`) REFERENCES `acli` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
そして、このテーブルにはデータが含まれています。
別のテーブルがあります
CREATE TABLE `PR` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`frequency` varchar(255) DEFAULT NULL,
`notes` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FKPRtoAR` (`id`),
CONSTRAINT `FKPRtoAR` FOREIGN KEY (`id`) REFERENCES `AR` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8
このテーブルにもデータが含まれています。
mcli.pr_id(テーブルmcli、フィールドID)のすべての行のデータは、pr.idの有効なエントリです(これは、OLDPRテーブルをPRに移行する前に別のテーブルOLDPPRにあったためです。実際にはmcli.pr_id OLDPR.id(古いテーブルのidフィールド)への外部キーを持っていました。
mcli.pr_idをPR.idに関連付ける外部キー制約を追加したいと思います。スキーマからわかるように、私はすでにmcli.pr_idにFK7617032A4007E4D7というインデックスを作成しています。そこで、コマンドを実行して外部キー制約を生成しようとしました。
mysql> ALTER TABLE `mcli` ADD CONSTRAINT `FK7617032A4007E4D7` FOREIGN KEY (`pr_id`) REFERENCES `PR` (`id`);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ADD CONSTRAINT `FK7617032A4007E4D7` FOREIGN KEY (`pr_id`) REFERENCES ' at line 1
mysql>
また、mcliからすべてのデータをフラッシュし、コマンドを再実行して外部キー制約を追加しようとしましたが、それでも同じエラーが発生しました。一重引用符を試しましたが、引用符はありません。Web上のすべては、私が正しい構文を持っていることを示唆しています。私は何が間違っているのですか?
私は私が得ることができるどんな助けにも感謝します。