2012年12月30日日曜日

MySQLでERROR 1005 (HY000): Can't create table 'user_db.groups' (errno: 150)

MySQLにおいて、外部参照キーをもつテーブルを作成する際に、以下のエラーが発生した際の対処方法を記載する。
ERROR 1005 (HY000): Can't create table 'user_db.groups' (errno: 150)
上記のエラーの原因は、以下の2つ考えれる。

  • MySQLでは、存在しないテーブルに対する外部参照キーの設定を許可していない。
    ⇒設定により、一時的に、上記のチェック機能を無効にする。
  • 親テーブルと子テーブルの外部参照キーとするカラムのデータタイプまたはサイズが異なる。
上記の1点目の対処方法としては、以下のコマンドを実行し、いったん外部参照キーのチェックを外す。
mysql> SET foreign_key_checks = 0;
外部参照キーをもつテーブルを作成した後、忘れずにもとの設定に戻す。
mysql> SET foreign_key_checks = 1;

0 件のコメント: