sql >> データベース >  >> RDS >> Mysql

SQL-エラー番号121のエラーコード1005

    エラー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`
    


    1. 文字列内のMySQLの2番目(または3番目)のインデックス

    2. コマンドラインを介してLinux上のMySQLユーザーに権限を付与する

    3. ISAM MySQLテーブルの主キーとしてのCHAR()またはVARCHAR()?

    4. PHPの配列にprint_r()を適用すると、なぜリソースID#4を取得するのですか?