我试图一次创建多个表(其中一些引用其他表)。
我想我匹配了数据类型并正确设置了主键/外键。但我只能看到“您不能添加外键约束”的错误。我认为引用的表可能是在其他表引用它之前创建的,所以我颠倒了顺序,结果是一样的。
最后,我尝试先创建和执行仅引用的表(item_type),然后再引用表(item)......并且......它成功了!
但是,我想知道这些代码是否可以立即执行。
这是下面的代码..(为了简单起见,只显示了两个表格..)
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)
);