2

假设我有一个空数据库,我想创建两个表。他们之间有关系。例如,R 中的一个属性(称为 b)是外键。定义应该(数据库为空,我还没有执行任何语句)看起来:

create table R(
a type primary key,
b type references S(b)
);  

create table S(
b type primary key
);  

如果我尝试使用上述语句运行脚本,我会收到错误 (根据 line: b type references S(b)) ,因为 S 不存在 - 这是正常和自然的。是否可以禁用检查现有表,对应外键?

我知道我可以更改语句的顺序。或者创建没有约束的表,稍后再添加。

为什么我要问。假设我们有很多表,它们之间有很多关系。当我们需要准备一种“备份脚本”时,手动订购表将消耗大量时间。

我知道可以禁用约束,如下所示:

alter table table_name disable constraint_name;

但这适用于例如插入语句。是否有适合创建语句的解决方案?

4

0 回答 0