如何引用尚未创建的表?

时间:2016-05-05 15:29:58

标签: mysql sql

让我们说我需要创建两个彼此引用的表(它们需要约束)。是没有约束的情况下创建表的唯一方法,然后将它们添加到单独的语句中?我记得有些orms可以自己解决这个问题,但是有可能只使用sql和两个语句吗?

1 个答案:

答案 0 :(得分:1)

必须先创建表而不使用外键,并在创建两个表后附加它们:

create table t1 (id int not null primary key, id2 int not null);
create table t2 (id int not null primary key, id1 int not null);

alter table t1 add foreign key (id2) references t2(id);
alter table t2 add foreign key (id1) references t1(id);

好消息:架构转储工作正常(so是我的数据库):

mysqldump -u root so t1 t2 | mysql -u root so

这不会导致错误,因为mysqldump会在适当的位置插入DISABLE KEYSENABLE KEYS