為什麼可以從外來鍵主表中刪除資料?

發布 科技 2024-06-11
24個回答
  1. 匿名使用者2024-01-29

    我們來看一下 on delete 屬性,它可以是:no action、cascade、set null、restrict。

    如果該值設定為“無操作”或“限制”,則在刪除父表(即外來鍵的**表)中的記錄時,請檢查該記錄是否有對應的外來鍵,如果有,則不允許刪除該記錄。

    如果值為Cascade,則在刪除父表(即外來鍵的**表)中的記錄時,檢查該記錄是否有外來鍵,如果有,則刪除子表(即包含外來鍵的表)中的記錄。

    如果該值設定為null,則在刪除父表(即外來鍵的**表)中對應的記錄時,首先檢查該記錄是否有對應的外來鍵,如果有,則將子表中的外鍵值設定為null(但這需要外來鍵允許null)。

    如果值為no action或restrict,則在更新父表(即外來鍵的**表)中的記錄時,檢查該記錄是否有對應的外來鍵,如果有,則不允許該記錄。

    如果該值為Cascade,則在更新父表(即外來鍵的**表)中的記錄時,請檢查該記錄是否有對應的外來鍵,如果有,則更新子表(即包含外來鍵的表)中的記錄。

    如果該值設定為null,則在父表(即外來鍵的**表)中更新對應的記錄時,首先檢查該記錄是否有對應的外來鍵,如果有,則將子表中的外鍵值設定為null(但是,這需要允許外來鍵取null)。

  2. 匿名使用者2024-01-28

    宣告了外來鍵。

    您還需要管理表中的相應資料以報告錯誤。

    不允許刪除主表資料。

  3. 匿名使用者2024-01-27

    1.級聯刪除可以通過外來鍵設定。

    2.先刪除外來鍵表中的資料,然後刪除當前資料。

  4. 匿名使用者2024-01-26

    如果要保留子表中的特定資料,可以將對應的記錄插入到備份表中,然後刪除主表中的記錄。

    如果要將資料保留在子表中,則只能撤消主外來鍵關係,然後刪除主表中的記錄。 當然,您也可以在主表中建立乙個新的主鍵值,將子表中要刪除的記錄的主鍵值改為這個新值,然後刪除主表中原來的主鍵記錄。

  5. 匿名使用者2024-01-25

    我覺得不難,新建乙個表,複製子表的資料,刪除主表

  6. 匿名使用者2024-01-24

    備份所需的表,然後一起刪除主表和子表。

  7. 匿名使用者2024-01-23

    刪除主表中的記錄時,必須先刪除子表的記錄,然後才能刪除主表的記錄。

    Oracle 資料庫支援級聯刪除,但這取決於你的約束是如何構建的刪除級聯(級聯刪除)delete set null(刪除主表,子表列設定 null)以上兩種方式不設定,預設是不允許刪除,必須按照以下方式刪除主表的記錄, 必須先刪除子表的記錄,然後才能刪除主表的記錄刪除子表的記錄時,可以直接刪除。

  8. 匿名使用者2024-01-22

    切記:如果刪除了影響其他資料的資料,則無法刪除該資料。

  9. 匿名使用者2024-01-21

    如果兩個表彼此具有主鍵約束和外來鍵約束,請刪除表表名級聯約束。

  10. 匿名使用者2024-01-20

    你說的恰恰相反,A可以刪除,但是在刪除主鍵表B之前,必須先刪除A,並且可以設定級聯刪除以自動處理。

  11. 匿名使用者2024-01-19

    方法一:從表 a 中刪除表 a 將表 b b 連線起來

    方法二:從表A中刪除名稱(從表b中選擇名稱)。

    這樣,您可以刪除表A中的同名名稱,而不會影響表B的內容。

  12. 匿名使用者2024-01-18

    是的,必須先刪除外部程式碼表中的資料,然後才能刪除主程式碼表中的資料。

  13. 匿名使用者2024-01-17

    如果要在乙個方向上關聯外來鍵,請先刪除子表,然後再刪除父表。 命令為:

    drop table tablename;如果兩個表彼此具有主外來鍵,則命令為 drop tablename: cascade constraints。 僅刪除其中乙個表允許您同時刪除兩個表。

  14. 匿名使用者2024-01-16

    主鍵和外來鍵。

    刪除必須級聯以刪除級聯

  15. 匿名使用者2024-01-15

    先刪除外來鍵,再刪除主鍵,因為外來鍵是靠主鍵構建的,就像剝橘子一樣,要先扯外皮才能吃裡面的肉(這個例子不太匹配,大概是意思,呵呵)。

    如果先刪除主鍵,肯定會出現錯誤!

  16. 匿名使用者2024-01-14

    有級聯刪除,即表A和表B是主表和從表的關係,當你刪除主表A中的資訊時,表B中的對應資訊就會被自動刪除,非常方便。

  17. 匿名使用者2024-01-13

    刪除表B中外鍵中的相關記錄,然後刪除表A中的記錄。

  18. 匿名使用者2024-01-12

    順序如下:首先刪除表A中的id欄位資料記錄,然後刪除表B中與之相關的記錄; 由於表 B 引用了表 A,因此如果先刪除表 B 中的記錄,則會發生外來鍵引用約束錯誤。

    對不起,我弄錯了,我應該先刪除表B中的ID欄位資料記錄,然後再刪除表A中與之相關的記錄。

  19. 匿名使用者2024-01-11

    沒關係,只要你刪除它就行。

    計算機中兩個連續的命令幾乎是同時完成的,沒有太大區別。

    例如,從 where id=.... 中刪除

    delete from b where id=...

    這樣的陳述,如果它們彼此相鄰,誰先來誰後都無關緊要。

  20. 匿名使用者2024-01-10

    首先刪除外來鍵,然後刪除主鍵,否則會遇到錯誤。

    根據你的例子,你需要先刪除B中關於A的資訊,然後你就可以刪除A彙總的ID。

    如果你仔細想想,如果你先刪除 A 中的某些內容,那麼 Aid in B 中的一些外來鍵將在一段時間內毫無意義。 如果你是 SQL 設計師,你認為這準確嗎? 您可以自己構建乙個簡單的。

    他說什麼並不重要,重要的是您在進行關聯時選擇了在屬性中級聯刪除

  21. 匿名使用者2024-01-09

    先刪除子表,再刪除主表。

  22. 匿名使用者2024-01-08

    SQL 表通常包含外來鍵關係,刪除乙個表中的資料會影響其他表。

    本節介紹刪除主SQL鍵和外來鍵的規則。

    刪除規則和更新規則:

    指定當資料庫的終端使用者嘗試刪除或更新包含作為外來鍵關係主題的資料的行時發生的情況。

    如果設定為:

    無操作:從主鍵表中刪除或更新資料時,會顯示一條錯誤訊息,通知使用者不允許刪除或更新操作,並且刪除或更新操作將回滾。

    級聯:刪除或更新包含外來鍵關係中涉及的資料的所有行。

    注意:級聯在 SQL Server 2000 中也稱為級聯。

    設定為空:這是 SQL Server 2005 中的一項新功能。 如果表的所有外來鍵列都可以接受 null 值,請將該值設定為 null。

    作用:如果要將外來鍵的刪除規則和更新規則設定為“設定為空”,則外來鍵必須為空欄位。

    設定預設值:這是 SQL Server 2005 中的一項新功能。 如果已為表的所有外來鍵列定義了預設值,請將該值設定為該列定義的預設值。

    注意:要將外來鍵的刪除規則和更新規則設定為“設定預設值”,外來鍵必須是具有預設值的字段。

  23. 匿名使用者2024-01-07

    -- 建立測試主節點。 id 是主鍵。

    create table test_main (

    id int not null,value varchar(10),primary key(id)

    --插入測試主資料。

    insert into test_main(id, value) values (1, 'one');

    insert into test_main(id, value) values (2, 'two');

    建立測試子表。 (請注意,此處有乙個 on delete 級聯)。

    create table test_sub (

    id int primary key,main_id int references test_main(id) on delete cascade,value varchar(10)

    --插入測試子表的資料。

    insert into test_sub(id, main_id, value) values (1, 1, 'oneone');

    insert into test_sub(id, main_id, value) values (2, 2, 'twotwo');

    測試刪除主表。

    sqlite> delete from test_main where id = 1;

    檢查子表的資料是否被刪除。

    sqlite> select * from test_sub;

    2|2|twotwo

  24. 匿名使用者2024-01-06

    如果要刪除表,則會顯示訊息“無法刪除物件”'orders'因為物件前面有乙個外來鍵

    約束引用“,你只需要通過系統函式,就能找到哪些表的外來鍵引用了表的字段。 這句話就像航行一樣:

    select,object_name( as referencetablename

    from as fk

    join as o on

    where '引用的表的名稱'

    獲取到外來鍵名稱後,可以使用以下語句刪除外來鍵(當然也可以手動到相關表中清除)。

    alter table dbo.引用的表的名稱、刪除約束和外來鍵名稱。

相關回答
13個回答2024-06-11

如果外鏈質量不好,就會有物件減少的可能,比如你在李吉潭的留言上有簽名,如果帖子被刪除,那麼你的打擾留言就沒了 檢視原帖

12個回答2024-06-11

包容性下降的一些原因是什麼? 我認為這是每個網站管理員都不想看到的。 當這種情況發生時,站長的第一感覺一定是**可能是k。 這時,站長應該去找相應的原因。 >>>More

13個回答2024-06-11

開啟“設定”應用,然後點選“常規”。 轉到“AssistiveTouch”選項並開啟“AssistiveTouch”開關。 單擊“小點”以替換主頁按鈕。

9個回答2024-06-11

隨著統計學的普及,越來越多的人使用統計學。 使用站點語法的查詢現在顯示句子“此數字是估計值,如果管理員想要更準確地了解引入量,請使用統計資訊。 為此,很多站長都安裝了統計資訊,但是使用後發現統計資訊中顯示的包含數量與網站語法查詢的結果相差很大,那麼我們是應該相信網站搜尋的結果還是相信統計資料呢? >>>More

5個回答2024-06-11

這首歌是SHE和海飛倫演唱的《謝謝你的溫柔》