質問: foreignkeyの作成方法について mysqlでforeign keyを作成しようと、以下のsqlを実行したところ、 テーブルは作成されず、エラーが発生しました。 エラーメッセージは can't create table 'test.user' (errno: 150) です。 また、 index (companyid), foreign key (companyid) references m_company(companyid), の2行を外すと通常通りテーブルは作成できます。 どうやったら、foreign keyを設定できるでしょうか。 テーブル作成後に、後付でforeign keyを設定しようと心みましたが、 それも失敗しました。 -------------------------------------------------------- create table user ( `seqno` int(11) not null auto_increment, `userid` varchar(8) not null default '', `password` varchar(8) default null, `mail` varchar(100) default null, `valid` tinyint(4) default null, `companyid` int(11) default null, index (companyid), foreign key (companyid) references m_company(companyid), primary key (`seqno`,`userid`) ) engine=innodb default charset=utf8; --------------------------------------------------------
回答: こんばんは。 情報が少ないです・・・。 m_companyはinnodb? companyidの型(m_companyの)は? ここ見てください・・・。 http://dev.mysql.com/doc/refman/4.1/ja/innodb-foreign-key-constraints.html