![]() |
[SQL] topics verwijderen
Ik ben bezig met het verschonen van een forum, en om tijd te besparen met het klikken van alle 87.332 topics dacht ik het volgende:
Code:
DROP * FROM `phpbb_topics` WHERE topic_id =>95; |
Het is niet drop * maar delete
Ik kan het ook erg afraden want daarmee verwijder je dus alleen wat databasetopics, maar niet alle berichten in die topics en alle andere zaken daaromheen. Anders gezegd, je schiet er niks mee op en je database wordt een puinhoop. Kun je dat niet gewoon via admin doen? |
nope via de admin kan ik niet zo snel de users eruit vissen, hij is volgespamt. en het aantal users zijn er onderhand 3,099 waarvan er maar 50 niet zo vulgair waren.
eigelijk wil ik dat ding verschonen, in de tussentijd gebruikers niet toe laten staan zich aan te melden (welke idioot stelt dan ook in dat iedereen mag posten) maar ook geen mail ontvangen dat de beheerder dat moet doen omdat de bots dan jou mailadres krijgen, vervolgens krijg je een error omdat je antwoordadres niet bestaat en zit je mailbox rete vol. is er nog een andere manier om een forum clean te krijgen op een inventieve manier? |
Wil je alle topics verwijderen? Is het dan niet makkelijker om eerste alle forums te verwijderen (in het admin panel) en vervolgens weer opnieuw aan te maken?
Is alweer een tijd terug dat ik met phpBB heb gewerkt maar dit zou toch moeten werken? |
ja, ik doe het volgende, ik ga instellen dat gebruikers eerst goed gekeurd moeten worden door de beheerder (vervolgens tientallen spam dingen krijgen in me box) de topics die ik wil houden verplaatsen, de forums verwijderen, de gebruikers op de eerste 50 na verwijderen, forum updaten (cq. spamfilter) en dat ding weer aanslingeren.
danku. |
Waarom drop je de hele table niet gewoon en begin je niet opnieuw
|
Dan kun je beter gewoon alle tables truncaten :o
|
Ik zie dat je een phpbb forum hebt, ik heb zelf een phpbb 2.x board
om spam gebruikers te verwijderen: http://starfoxtj.phpbbhelp.org/phpBB/toolkit/index.php Verder: http://www.phpbb.com/community/viewtopic.php?t=427852 ik heb zelf een mod geinstalleerd waar men een extra veld in moet vullen bij het registreren, werkt zeer goed:) |
Er zit toch standaard een vrij goede CAPTCHA in phpBB?
|
Kan je niet phpmyadmin gebruiken om de hits uit je database te verwijderen, lijkt mij makkelijk dan in de SQL gaan kloten.
|
Citaat:
|
ik dacht dus, voor een mooie querry uit, om de users die ooit iets nuttigs gepost hebben te behouden inclusief de topics. hoewel de ongesloten topics die toen nuttig waren ook vol zitten met spam. en een verzoek om de gebruikers (geregistreerde bots en spamposters, hebben die een aparte naam?)) te verwijderen.
weet dat delete het een en ander behoudt, en met drop verwijderje daarwerkelijk de rijen. of andersom? en nu heb ik de bots verwijderd (tijdrovend, view apart instellen, gebruikers die ik wil behouden uitvinken, mezelf alsnog verwijderd, dus nieuw account tevens aan moeten maken, etc) dump ik de nuttige topics die ik kan vinden door per actieve gebruiker maar eens langs te gaan waar ze gepost hebben, in een apart forum, gesloten ed niet zichtbaar. vervolgens was het idee om de overige fora waar dus spambots actief waren (hij stond dus op openbaar, wie dat heeft verzonnen weet ik niet) te verwijderen. nu heb ik de aanmelding via beheerder ingesteld, met een noreply adres om te voorkomen dat mijn adres wordt meegestuurd, welke ze anders ook vervolgens kunnen spammen. echter kan je met directadmin instellen dat een adres als domein@domein.nl wordt doorgelink, nu was het zo dat de server vol stond met zogezegt webmail vol spam etc. moet ik nog iets op verzinnen om het doorlinken schoon te laten verlopen. ) en daarna was het de bedoeling, waar ik bijna ben aangekomen, om het forum helemaal te updaten als ik me ruimte terug heb na het verwijderen van de spam incl. plaatjes. om het spamfilter dus te verbeteren en vanwege de functionaliteit. tuurlijk zijn er nog andere opties dan bb. hoe lossen jullie zukke problemen op? naast het feit dat je het ook nog standaard kan deleten en er iets nieuws op dumpen.. het gaat mij hier dan ook puur om het behoud van wat ooit iets was.. en wat trilox zegt, ik voer ze uit in phpmyadmin. (zat ff na te denken, dacht je anders in oracle of iets luitzen?) wat een gedoe ook :) |
Citaat:
|
Citaat:
|
Citaat:
Delete verwijdert rijen afhankelijk van het filtercriterium dat je meegeeft ("where id=1"), drop verwijderd de HELE tabel, dus niet alleen de inhoud, de tabel zelf is ook gewoon weg, dus zonder die tabel opnieuw aan te maken (en ik vermoed dat je niet weet hoe dat moet) kun je niks meer met je systeem. |
misschien moet ik me boek van sql van vorige blok nog een keer doornemen,.
filters, zijn dat die contraints? |
Ik raad het je sowieso niet aan dit soort dingen in een database te verwijderen zonder dat je weet hoe het systeem in elkaar hangt.
|
Citaat:
Met DROP table wijzig je je DDL en verwijder je de hele tabel, afblijven dus. Met DELETE kun je zonodig via de where clause aangeven wat behouden moet blijven en met TRUNCATE maakt hij de hele tabel onherroepelijk leeg en gaan delete triggers niet af, bovendien worden autoincrement velden weer gereset. |
Alle tijden zijn GMT +1. Het is nu 22:09. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.