刪除oracle數(shù)據(jù)庫所有表 如何在有外鍵關(guān)系的表中刪除數(shù)據(jù)?
如何在有外鍵關(guān)系的表中刪除數(shù)據(jù)?刪除主表的記錄時(shí),必須先刪除子表的記錄,然后才能刪除主表的記錄刪除子表的記錄時(shí),可以直接刪除Oracle數(shù)據(jù)庫支持級(jí)聯(lián)刪除,但這取決于約束的創(chuàng)建方式1。刪除級(jí)聯(lián)2。On
如何在有外鍵關(guān)系的表中刪除數(shù)據(jù)?
刪除主表的記錄時(shí),必須先刪除子表的記錄,然后才能刪除主表的記錄
刪除子表的記錄時(shí),可以直接刪除
Oracle數(shù)據(jù)庫支持級(jí)聯(lián)刪除,但這取決于約束的創(chuàng)建方式
1。刪除級(jí)聯(lián)
2。On delete null(刪除主表,子表列設(shè)置null)
以上兩種方法不設(shè)置,默認(rèn)為不允許刪除。必須遵循以下方法
刪除主表的記錄時(shí),必須先刪除子表的記錄,然后才能刪除主表的記錄
刪除子表的記錄時(shí),可以直接刪除子表的記錄
如果定義外鍵引用時(shí)定義了級(jí)聯(lián)刪除關(guān)系,刪除主鍵表的記錄時(shí),會(huì)同時(shí)刪除關(guān)聯(lián)的外鍵記錄。例如:學(xué)生表(學(xué)號(hào)、姓名、性別、年齡),主鍵為學(xué)號(hào);成績表(學(xué)號(hào)、課程號(hào)、年級(jí)),學(xué)號(hào)指學(xué)生表中的學(xué)號(hào)。如果在定義外鍵引用約束時(shí)定義了級(jí)聯(lián)刪除,則在刪除學(xué)生信息時(shí),同時(shí)刪除學(xué)生的成績。例如,刪除學(xué)生張三也會(huì)刪除張三所有課程的成績記錄。如果在定義外鍵引用約束時(shí)未定義級(jí)聯(lián)刪除,則如果學(xué)生有課程記錄,則系統(tǒng)將不允許在刪除學(xué)生信息時(shí)刪除學(xué)生信息。
如何實(shí)現(xiàn)SQL與Oracle外鍵約束中的級(jí)聯(lián)刪除的方法?
如果是單向外鍵關(guān)聯(lián):請先刪除子表,然后刪除父表。命令為:drop table tablename;如果兩個(gè)表彼此有主鍵和外鍵約束,則命令為“drop table tablename cascade constraints”。只刪除其中一個(gè)表可以同時(shí)完成兩個(gè)表的刪除。