我在做,有一個數據庫:如何在保留父項的情況下保留外鍵的數據?
Artist
表CD
表它引用的藝術家。
我希望它是,當Artist
從數據庫中刪除,他們已經取得了CD
必須不會被自動刪除的情況下,但應該還是有可能刪除他們所做的Artist
。
我是新手MySQL的編碼器,並且我相信這件事情做ON DELETE CASCADE/RESTRICT/SET NULL或類似的東西,但不是100%肯定,我敢肯定它是不ON DELETE但CASCADE。
我在做,有一個數據庫:如何在保留父項的情況下保留外鍵的數據?
Artist
表CD
表它引用的藝術家。我希望它是,當Artist
從數據庫中刪除,他們已經取得了CD
必須不會被自動刪除的情況下,但應該還是有可能刪除他們所做的Artist
。
我是新手MySQL的編碼器,並且我相信這件事情做ON DELETE CASCADE/RESTRICT/SET NULL或類似的東西,但不是100%肯定,我敢肯定它是不ON DELETE但CASCADE。
您應該先刪除您想要刪除的藝術家的所有引用,然後刪除藝術家應該沒有問題。如果仍有對該對象的引用,則不能刪除對象。
如果您想保留CD唱片,那麼在刪除歌手之前,您需要將他們的外鍵字段設置爲父母(藝術家)爲NULL(或添加到其他藝術家記錄)。在MySQL中,您可以使用ON DELETE SET NULL將外鍵自動設置爲NULL。
你應該考慮你是否真的想這樣做 - 它會讓你的數據處於一種奇怪的狀態。爲什麼你需要刪除一個藝術家而不是其對應的CD?
謝謝你的工作,我的數據庫是一個藝術家的唱片標籤,他們來來去去,他們希望在他們離開時不會有那些確定爲他們的個人工作。 – user1854392
在外鍵約束上說ON DELETE SET NULL是否可以,因爲我不需要關於藝術家的信息,但是我需要刪除藝術家的能力,並且仍然有CD可用。 – user1854392