0

次のステートメントを実行する場合:

CREATE  TABLE `intelischool`.`facultyclasses` (
  `id` VARCHAR(45) NOT NULL ,
  `class` VARCHAR(45) NOT NULL ,
  `subject` VARCHAR(45) NOT NULL ,
  `year` VARCHAR(45) NOT NULL ,
  `section` VARCHAR(45) NOT NULL ,
  PRIMARY KEY (`id`, `section`, `year`, `subject`, `class`) ,
  INDEX `id` (`id` ASC) ,
  CONSTRAINT `id`
    FOREIGN KEY (`id` )
    REFERENCES `intelischool`.`faculty` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)

エラーが発生します:

ERROR 1005: Can't create table 'intelischool.facultyclasses' (errno: 121) 
4

2 に答える 2

0

このメーリング リスト スレッドは同じ問題についてのもので、そこで到達した結論は、重複した制約名が原因であるというものでした。

あなたはおそらく別のものを持っています

CONSTRAINT `id`

同じデータベースの別のテーブルに。これらの名前は、データベースごとに一意である必要があります。みたいな名前をつけて

CONSTRAINT `facultyclasses_foreignkey`

または、その行を削除して、データベースに自動的に名前を生成させます。

于 2012-07-28T21:13:37.353 に答える
0

外部キー定義の前にカンマがありません

それ以外は

テーブルを削除し、インデックスを使用して作成しました (既に作成されたテーブルにインデックスを追加するのではなく)

于 2012-07-28T07:05:05.463 に答える