一度に複数のテーブルを作成しようとしていました (そのうちのいくつかは他のテーブルを参照しています)。
データ型を一致させ、プライマリ/外部キーを正しく設定したと思います。しかし、「外部キー制約を追加できません」というエラーしか表示されません。参照されるテーブルは、他のテーブルが参照する前に最初に作成される可能性があると考えたため、順序を逆にしましたが、結果は同じでした。
最後に、最初に参照されるテーブル(item_type)のみを作成して実行し、後でテーブル(item)を参照してみました..そして...うまくいきました!
しかし、それらのコードを一度に実行できるかどうかは疑問です。
以下のコードは次のとおりです..(簡単にするために2つの表のみが示されています..)
CREATE TABLE item (
i_id SMALLINT unsigned NOT NULL AUTO_INCREMENT,
i_name VARCHAR(30) NOT NULL,
t_id SMALLINT unsigned NOT NULL,
PRIMARY KEY (i_id),
FOREIGN KEY (t_id) REFERENCES item_type(t_id)
) ENGINE=INNODB;
CREATE TABLE item_type (
t_id SMALLINT unsigned NOT NULL AUTO_INCREMENT,
t_name VARCHAR(20) NOT NULL,
PRIMARY KEY(t_id)
);