maanantai 10. syyskuuta 2007

Viiteavain virhe poistossa

Kun olet syöttänyt Tuoterivi -tauluun (M-pää) rivejä ja yrität poistaa Tuoteryhmä taulusta (1-pää) vastaavaa riviä, saat aikaiseksi seuraavan virheilmoituksen:

#1451 - Cannot delete a parent row: a foreign key constraint fails (`KiukaJu/Tuote`, CONSTRAINT `Tuote_ibfk_1` FOREIGN KEY (`tuoteryhmaID`) REFERENCES `Tuoteryhma` (`tuoteryhmaID`))


Esimerkiksi: DELETE FROM Tuoteryhma WHERE tuoteryhmaID = '11111';

Eli 1 -pään taulusta (parent) et voi poistaa sellaista riviä (tuoteryhmaID = 11111), jolle on syötetty tietoa Monta -pään tauluuun.

Tämä johtuu siitä että tietokannan Tuote -taulu luotiin:

FOREIGN KEY (tuoteryhmaID) REFERENCES Tuoteryhma ON DELETE RESTRICT -poistosäännöllä.
Jos jätät ON DELETE -määrityksen pois niin RESTRICT eli poiston esto on oletusarvo!


Ei kommentteja: