开发者

Can someone explain me this Oracle SQL Command?

ALTER T开发者_运维技巧ABLE "APPLICATIONS_SRV_STORAGE"
    ADD CONSTRAINT "APPL_SRV_STORAGE_APPLICAT_FK1"
    FOREIGN KEY ("APP_ID")
    REFERENCES "APPLICATIONS" ("APP_ID")
    ON DELETE CASCADE
    ENABLE;

Does it mean: When something on table APPLICATIONS is deleted, delte altough the entry in APPLICATION_SRV_STORAGE?


The addition of DELETE CASCADE means that when a row in APPLICATIONS is deleted, any rows in APPLICATIONS_SRV_STORAGE that reference its APP_ID will also be deleted.


Yes. APPLICATIONS will be considered the parent and APPLICATIONS_SRV_STORAGE will be the child, the connection being made through APP_ID. When the parent is deleted, then all the children will also be deleted (cascading).

Reference: http://www.techonthenet.com/oracle/foreign_keys/foreign_delete.php (Couldn't find the official one.)


This adds a new constraint with the name APPL_SRV_STORAGE_APPLICAT_FK1 to the table APPLICATIONS_SRV_STORAGE.

The constraint itself is that for every value in the column APPLICATIONS_SRV_STORAGE.APP_ID, there must be a matching value in APPLICATIONS.APP_ID. APPLICATIONS.APP_ID can contain values not contained in APPLICATIONS_SRV_STORAGE.APP_ID.

In addition to that, if an APP_ID is deleted from the table APPLICATIONS, then all rows from APPLICATIONS_SRV_STORAGE with the same ID are deleted as well.

At creation time, the constraint is enabled (Oracle allows you to disable constraints temporarily).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜