簡體   English   中英

MySQL:在將表值設置為默認值之后,如何更新外鍵字段並創建關系?

[英]MySQL: How to update foreign key field, and create a relationship, after table values have been set with default values?

我有一個teamnews表: 在此處輸入圖片說明

另一個表稱為team: 在此處輸入圖片說明

在用戶登錄站點之前,teamnews表中的值是預先確定的。 可以說,當一個用戶( teamNameteamName ,我想更新NewsID = 1的teamID行並創建一個關系,以便如果我最終刪除該用戶( teamName ), teamID teamNews表中的teamID值重置為零。

這可能嗎? 請記住我正在使用phpMyAdmin,所以我對高級SQL術語並不完全熟悉。

當我嘗試執行此操作時,出現錯誤: 在此處輸入圖片說明

這是錯誤:

在此處輸入圖片說明

您需要指定一個FOREIGN KEY 您可以通過運行以下命令將其添加:

ALTER TABLE teamnews
ADD CONSTRAINT fk_teamID
  FOREIGN KEY (TeamID)
  REFERENCES team (teamID)
  ON DELETE SET NULL;

這將使用外鍵在表之間建立正式關系。 ON DELETE SET NULL是對您很重要的部分。 這就是說,只要刪除引用表中的任何項目(在本例中為team ),那么該表中所有具有該team id的行都應將該字段設置為null,這正是您要查找的內容。

請注意,這僅在使用InnoDB數據庫引擎(而不是MyISAM引擎)時才有效。 您可能可以通過某個地方的phpmyadmin進行更改(我對phpmyadmin並不熟悉,所以我無法為您提供詳細信息)。

另請注意,要使此方法起作用,MySQL實際上必須能夠“ SET NULL”-包含具有此約束的外鍵的字段不能設置為“ NOT NULL”,否則它將失敗並顯示錯誤消息“檢查數據類型”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM