エラー121は、外部キー制約エラーがあることを意味します。 InnoDBを使用しているため、SHOW ENGINE INNODB STATUS
を使用できます。 失敗したクエリを実行してLATEST FOREIGN KEY ERROR
の説明を取得した後 セクション。 SQLを自分で実行すると、次のようになります。
------------------------
LATEST FOREIGN KEY ERROR
------------------------
101210 14:55:50 Error in foreign key constraint creation for table `regula`.`Reservation`.
A foreign key constraint of name `regula`.`prjId`
already exists. (Note that internally InnoDB adds 'databasename'
in front of the user-defined constraint name.)
Note that InnoDB's FOREIGN KEY system tables store
constraint names as case-insensitive, with the
MySQL standard latin1_swedish_ci collation. If you
create tables or databases whose names differ only in
the character case, then collisions in constraint
names can occur. Workaround: name your constraints
explicitly with unique names.
基本的に、最後のテーブルでprjId制約名に一意の名前を付ける必要があります。制約/外部キー名はデータベースに対してグローバルであるため、別のテーブルで再利用することはできません。最後を変更するだけです
CONSTRAINT `prjId`
に
CONSTRAINT `prjId2`