Ungelinkte reacties bij verwijdert gedicht
Ik heb een database met 2 tabellen: gedichten, reacties
Die zijn aan elkaar gelinkt met gedicht_id
Nu heb ik in het verleden als luiheidsoplossing wel eens een gedicht verwijdert door het gewoon uit tabel gedicht te verwijderen.
Met als gevolg dat de eventuele reacties nog steeds in de tabel reacties staan. En nergens maar aan gelinkt worden.
Is het mogelijk die te verwijderen. Logisch gezien zou ik bij elke reactie kunnen checken of de gedicht_id nog in de tabel gedichten staat.
Maar ik weet niet goed hoe hier aan te beginnen? als er geen link meer is met de tabel gedichten is het NULL? En als die conditie er is, dan verwijder ik het maar?
Ben bezig aan een scriptje om bij het verwijderen van gedichten, ook direct de reacties te verwijderen. redelijk eenvoudig maar niet meer van toepassing op de vroegere fout die ik maakte.
Had je dit wel gedaan, dan is het met een bepaalde instelling bijvoorbeeld niet mogelijk om gedichten te verwijderen terwijl er nog reacties bij dat gedicht horen. Verder zou je met een andere instelling bij het verwijderen van een gedicht er direct voor kunnen zorgen dat alle bijbehorende reacties ook verwijderd worden.
Om het probleem nu op te lossen zou je een query als deze kunnen gebruiken:
Valt dit nog op te lossen?
ja, handmatig verwijderen of alle gelinkte id's zoeken en alles verwijderen wat niet gelinkt is.
Ja dit is me gelukt met de code van Blanche.. Maar had het over een foreign key invoegen..
Ja dat kan, met als voorwaarde dat je de InnoDB engine van MySQL gebruikt. Dat is namelijk de enige engine waarbij dat mogelijk is.
Zou je het persoonlijk zelf doen? Het gaat hier in het slechtste geval over een reactie, en een vote die niet meer gelinkt is... nu is het myISAM...
Ja, persoonlijk zou ik het zelf altijd doen. Je voorkomt hiermee namelijk dat je corrupte data in je database krijgt...