Sobes.tech
Junior

Kuidas mõjutab välisvõti andmebaasi andmete terviklikkust?

sobes.tech AI

Vastus AI-lt

Võõrvõti (foreign key) tagab andmete viitamise terviklikkuse, tagades, et ühe tabeli (alam-tabeli) veeru väärtused vastavad teise tabeli (ema-tabeli) veeru väärtustele.

Andmete terviklikkusele mõju:

  1. Keelab kirje lisamise alam-tabelisse, mille vastav veerg ema-tabelis on mittesobiv. Katse sisestada rida, mis viitab mittesobivale ema-kirjele, põhjustab vea.
  2. Piirab kirje kustutamist ema-tabelist, millele viitavad kirjed alam-tabelis. Kustutamise käitumine sõltub seatud tegevusest (ON DELETE):
    • RESTRICT (vaikimisi): Keelab kustutamise.
    • CASCADE: Kustutab sõltuvad kirjed alam-tabelis.
    • SET NULL: Seab vastavasse veergu NULL väärtuse (kui veerg seda lubab).
    • NO ACTION: Sarnaselt RESTRICT-ile standardkontrolli ajal, kuid võib erineda täitmise ajal.
  3. Piirab kirje uuendamist ema-tabelis. Uuendamise käitumine sõltub seatud tegevusest (ON UPDATE):
    • RESTRICT (vaikimisi): Keelab uuendamise.
    • CASCADE: Uuendab vastavat väärtust sõltuvates kirjetes alam-tabelis.
    • SET NULL: Seab vastavasse veergu NULL väärtuse (kui veerg seda lubab).
    • NO ACTION: Sarnaselt RESTRICT-ile standardkontrolli ajal, kuid võib erineda täitmise ajal.

Võõrvõti aitab vältida "ripakaid" kirjeid ja tagab, et tabelite vahelised seosed jäävad korrektsed.