1

これは非常に一般的な問題のようですが、過去2日間に読んだすべての投稿と疑似チュートリアルにもかかわらず、答えを見つけることができないようです:/

私が現在取り組んでいるプロジェクトでは、MySQLの使用方法を学ぶ必要があり、ForeignKeysまたはIndexesに関する問題が発生したようです。

私はこれらを作成しています:http:
//paste.ubuntu.com/1503473/

編集:ここに重要な部分を挿入すると、上記のリンクがいつか死ぬ可能性があります:

   CREATE TABLE user_book (
        userid  Varbinary(16),
        bookid Varbinary(16),

        PRIMARY KEY(userid, bookid),

        INDEX(userid),
        FOREIGN KEY(userid)  REFERENCES user,

        INDEX (bookid),
        FOREIGN KEY(bookid) REFERENCES book

    )ENGINE=INNODB;

    Made the same mistake at user_chapter.

しかし、sqlはテーブル "user_book"でエラーをスローします:
#1005-テーブル'mangressdb.user_book'を作成できません(errno:150)

私が泣きそうになっているので、ここで私を助けてくれたら本当に素晴らしいです。それはおそらく私の側の非常に愚かな間違いですが、私はそれを見つけることができません。

4

1 に答える 1

2

DDLで名前の競合が発生しているようです。外部キーに使用する親テーブルの列を明示的に指定してみてください。

CREATE TABLE user_book (
    userid  Varbinary(16),
    bookid Varbinary(16),

    PRIMARY KEY(userid, bookid),

    INDEX(userid),
    FOREIGN KEY(userid)  REFERENCES user (userid),

    INDEX (bookid),
    FOREIGN KEY(bookid) REFERENCES book (bookid)

)ENGINE=INNODB;

テーブルの親列名も明示的に指定する必要がありuser_chapterます。

于 2013-01-06T16:04:13.637 に答える