ALTER TABLE "APPLICATIONS_SRV_STORAGE"
ADD CONSTRAINT "APPL_SRV_STORAGE_APPLICAT_FK1"
FOREIGN KEY ("APP_ID")
REFERENCES "APPLICATIONS" ("APP_ID")
ON DELETE CASCADE
ENABLE;
是否意味着:当删除表APPLICATIONS上的内容时,删除虽然APPLICATION_SRV_STORAGE中的条目?
答案 0 :(得分:8)
添加DELETE CASCADE意味着当删除APPLICATIONS中的一行时,APPLICATIONS_SRV_STORAGE中引用其APP_ID的任何行也将被删除。
答案 1 :(得分:3)
是。 APPLICATIONS
将被视为父级,APPLICATIONS_SRV_STORAGE
将成为子级,通过APP_ID
建立连接。删除父项后,也将删除所有子项(级联)。
参考:http://www.techonthenet.com/oracle/foreign_keys/foreign_delete.php(找不到官方的。)
答案 2 :(得分:3)
这会向表APPL_SRV_STORAGE_APPLICAT_FK1
添加名称为APPLICATIONS_SRV_STORAGE
的新约束。
约束本身就是对于APPLICATIONS_SRV_STORAGE.APP_ID
列中的每个值,APPLICATIONS.APP_ID
中必须存在匹配值。 APPLICATIONS.APP_ID
可以包含APPLICATIONS_SRV_STORAGE.APP_ID
中未包含的值。
除此之外,如果从表APP_ID
中删除APPLICATIONS
,则同时删除APPLICATIONS_SRV_STORAGE
中具有相同ID的所有行。
在创建时,约束已启用(Oracle允许您临时禁用约束)。