Can't create table './database_name/table_name.frm' (errno: 150)
移転しました。
よくはまるのでメモ。
本エラーは自分は、外部キー作成できない時にでた。
kinds.id を外部キーの参照先とする。
1. だめなSQL
CREATE TABLE hoges ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(128), FOREIGN KEY (info_source_id) REFERENCES kinds(id), created DATETIME DEFAULT NULL ) ENGINE=INNODB; ;
2. 良いSQL
idつくって、KEYつくり、その後外部キー指定しなきゃだめ。
あとInnoDBでないと外部キー指定できないので注意。
CREATE TABLE hoges( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(128), info_source_id INT UNSIGNED NOT NULL default '0', KEY info_source_id_index (info_source_id), FOREIGN KEY (info_source_id) REFERENCES kinds(id) ) ENGINE=INNODB ;