MySQL - Fremdschlüssel beim Löschen setze null in nicht null Feld

Dies ist wahrscheinlich eine triviale Frage, aber ich bin immer noch ein wenig ungeschickt, wenn es um Fremdschlüsselbeschränkungen geht, also wollte ich sicher gehen.

Nehmen wir an, ich habe einen Tischcountries mit den Felderncountry_id (PK) undnameund einen Tischcities mit den Felderncity_id (PK),name undcountry_id (FK).

Der Fremdschlüsselcities.country_id hat die EinschränkungON DELETE SET NULL. So wie ich es verstehe, bedeutet dies, dass wenn eine Aufzeichnung voncountries wird gelöscht, alle Datensätze incities Dieser Verweis auf den gelöschten Datensatzcountry_id wird seine habencountry_id Feld auf NULL gesetzt.

Was ist, wenn jedochcities.country_id hat das AttributNOT NULL? Verhindert dies, dass die Fremdschlüsseleinschränkung ordnungsgemäß funktioniert? Es würde Sinn machen, dass dies der Fall ist, aber ich möchte es nur überprüfen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage