代码之家  ›  专栏  ›  技术社区  ›  opHASnoNAME

有人能解释一下这个Oracle SQL命令吗?

  •  1
  • opHASnoNAME  · 技术社区  · 14 年前
    ALTER TABLE "APPLICATIONS_SRV_STORAGE"
        ADD CONSTRAINT "APPL_SRV_STORAGE_APPLICAT_FK1"
        FOREIGN KEY ("APP_ID")
        REFERENCES "APPLICATIONS" ("APP_ID")
        ON DELETE CASCADE
        ENABLE;
    

    这是否意味着:当表应用程序上的某些内容被删除时,请删除应用程序存储中的条目?

    3 回复  |  直到 14 年前
        1
  •  8
  •   batwad    14 年前

    添加delete cascade意味着当删除应用程序中的一行时,应用程序srv_存储中引用其app_id的任何行也将被删除。

        2
  •  3
  •   Alin P.    14 年前

    对。 APPLICATIONS 将被视为父母 APPLICATIONS_SRV_STORAGE 将是孩子,通过 APP_ID . 当父级被删除时,所有子级也将被删除。( 级联 )

    参考文献: http://www.techonthenet.com/oracle/foreign_keys/foreign_delete.php (找不到正式的。)

        3
  •  3
  •   Aaron Digulla    14 年前

    这将添加一个名为的新约束 APPL_SRV_STORAGE_APPLICAT_FK1 落到桌子上 APPLICATIONS_SRV_STORAGE .

    约束本身就是列中每个值的约束 APPLICATIONS_SRV_STORAGE.APP_ID ,中必须有匹配的值 APPLICATIONS.APP_ID . 应用程序.app\u id 不能包含未包含在中的值 应用程序srv_storage.app_id .

    除此之外,如果 APP_ID 从表中删除 APPLICATIONS ,然后是来自的所有行 应用程序存储 同样的ID也会被删除。

    在创建时,将启用约束(Oracle允许您临时禁用约束)。