[英]MySQL: How to update foreign key field, and create a relationship, after table values have been set with default values?
我有一個teamnews表:
另一個表稱為team:
在用戶登錄站點之前,teamnews表中的值是預先確定的。 可以說,當一個用戶( teamName
) teamName
,我想更新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.