1

当我直接在 CREATE 命令中创建具有 FK 定义的表并且目标表尚不存在时,会导致错误。

如果存在目标表,是否可以以某种方式暂停检查?

我的 DBMS 是 Postgres。

示例(伪代码):

create table "Bar"
    foo_id integer FK of "Foo"."id",
    someattr text;

create table "Foo"
    id integer;

示例顺序错误,这就是它无法运行的原因。

我正在尝试根据许多 sql 文件中的定义批量重新创建数据库。

4

2 回答 2

2

当我直接在 CREATE 命令中创建具有 FK 定义的表并且目标表尚不存在时,会导致错误。

如果存在目标表,是否可以以某种方式暂停检查?

处理此问题的最佳方法可能是:

  1. 以正确的顺序创建表格,或
  2. 在创建所有表之后,在创建表之外创建约束。
于 2011-12-23T13:14:26.430 回答
0

蛮力总是一种选择。

继续运行 DDL 脚本,直到运行没有错误。

更优雅需要脚本的顺序结构。

添加存在检查是可能的,但我对 postgres 元数据不太熟悉。

于 2011-12-23T13:07:24.070 回答