アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつも参考にさせて頂いています。
現在テーブル作成時に外部制約キーをつけようとしていますが、下記のSQLを実行しようとするとエラーが出てしまいます。

以下実行SQL----------

CREATE TABLE …
FOREIGN KEY (AAA) REFERENCES table_name (AAA) ON DELETE CASCADE ON UPDATE CASCADE
) TYPE=InnoDB;

以下エラー内容------

ERROR 1005: Can't create table '.\hobi\h_category_syobunrui.frm' (errno: 150)

googleとかで調べてみると複合インデックス?というものを張ればいいとは書いていましたが具体的に複合インデックスがどういうものなのかよくわかりませんでした。

同じような症状が出たことがある方、又詳しいかたいらっしゃいましたら宜しくお願いします。

A 回答 (1件)

今回の場合は、AAAという単一列をキーにしているので、複合インデクス(複数の列で構成するインデクス)は関係ありません。



親になる表のAAAには、primary keyを定義していないのでは?

【定義例】
create table t1
(aaa int primary key,
bbb int,
ccc int)
engine=innodb;

create table t2
(aaa int,
ddd int,
eee int,
-- index(aaa),
foreign key(AAA) references t1(AAA)
on delete cascade
on update cascade
) engine=InnoDB;

参考URL:http://dev.mysql.com/doc/refman/4.1/ja/innodb-fo …
    • good
    • 0
この回答へのお礼

連絡遅れましてすいません。
回答ありがとうございました。インデックスが定義されてなかったからみたいです。
指定どおり

index(aaa)

という索引を作ればうまくいきました。
ありがとうございました。

また何かありましたらご助言宜しくお願いします。

お礼日時:2007/05/24 21:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!