0

MySQLで2つのテーブルを作成したいのですが、2番目のテーブルにはベーステーブルの外部キーがあります。

問題は、2番目のテーブルを作成しようとすると、errno:150が発生することです。外部キーがnullであるため、これは失敗します。

2番目のテーブルを正しく作成するにはどうすればよいですか?

詳細

私の最初のテーブルには5つの属性があり、最初の属性は主キーです。

2番目のテーブルには3つの属性があります。このテーブルの1番目と2番目の属性は、最初のテーブルの最初の2つの属性を参照します。

すべての変数はvarcharであり、すべて同じ長さです。助言がありますか?

4

1 に答える 1

1

コードが表示されない場合、これを修正する適切な方法は、 MySQL-外部キーのドキュメントページにあると思います。

以下の例を参照してください。

CREATE TABLE parent (id INT NOT NULL,
                     PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
                    INDEX par_ind (parent_id),
                    FOREIGN KEY (parent_id) REFERENCES parent(id)
                      ON DELETE CASCADE
) ENGINE=INNODB;

この行はまさにあなたがする必要があることです:FOREIGN KEY (parent_id) REFERENCES parent(id)

于 2012-10-14T05:11:39.867 に答える