代码之家  ›  专栏  ›  技术社区  ›  Paulo Henrique

创建表时不检查不存在的表上的外键

  •  0
  • Paulo Henrique  · 技术社区  · 7 年前

    我正在修改一个非常大的查询(MySQL到SQL),它创建了许多表和关系。问题是,它总是在向表添加外键引用之前检查表是否存在。

    因此,我必须对查询进行重新排序以避免这个问题,我的问题是,是否有一条指令可以关闭该检查,因此它将创建表并添加引用,而不会在每次遇到错误时停止查询。

    我正在Azure DB中使用SQL。

    非常感谢。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Lukasz Szozda    7 年前

    最简单的方法是首先创建所有表,然后使用 ALTER TABLE .

    例如:

    CREATE TABLE a(id INT PRIMARY KEY IDENTITY(1,1), b_id INT, c CHAR(10));
    CREATE TABLE b(id INT PRIMARY KEY IDENTITY(1,1), z INT);
    
    ALTER TABLE a ADD CONSTRAINT FK_a_b_id_b FOREIGN KEY (b_id) REFERENCES b(id);
    

    Rextester Demo