Zoals de titel al zegt:
Ik heb een vrij grote database (relatief veel tabellen) en ik wil als ik een profiel wil verwijderen hem uit alle tabellen en koppeltabellen verwijderen, zodat ook al de berichten verwijderd zijn.
Is dat zoiets mogelijk?

DELETE FROM * WHERE profiel_id = 1
klikt logisch, ik probeer het zo ff
@Jason: Waarom probeer je het niet zelf:P Het is de beste manier ^^
profiel_id = 1


Dat doet me denken aan een foreign key, als je die bij het aanmaken ON DELETE CASCADE geeft zou de rest vanzelf moeten gaan...
Het lijkt me sterk dat dit kan. Een sterretje als tabelnaam... nah.

Je moet foreign keys gebruiken en er voor zorgen dat alles automatisch mee wordt verwijderd. Daar zijn die dingen voor.
anders krijg je denk ik ook een error? Er zijn misschien ook tabbellen die die velden niet hebben, en dan krijg je de error unknown column tabel.henk
Wat je wel zou kunnen doen:

-> Describe query van je database
-> Describe query van elke tabel (mbv de info uit de hiervoor genoemde query)
-> deze results controleer je op of er een kolom profiel_id in zit, zo ja -> genereer delete query, zo nee -> volgende kolom

Het kan dus wel, ook zonder een InnoDB engine opzet. Maar het is niet ideaal.
Kan dit niet gewoon door

DELETE * FROM * WHERE profiel_id = 1
Jason: er hebben hier al sommige over Foreign Keys gepraat,
Werk met InnoDB engine van MySQL en je probleem is meteen opgelost. je wist je profiel_id en meteen zijn alle gelinkte records in andere tabellen ook meteen weg.
zie: http://www.phphulp.nl/php/tutorials/3/274/

Reageren