MySQL database ineens leegslopen?

Pagina: 1
Acties:
  • 176 views sinds 30-01-2008

  • Config
  • Registratie: Januari 2000
  • Laatst online: 06-01-2025
Is er een manier om een mysql database in een keer leeg te halen (alles) zonder de database te verwijderen?

Snel antwoord is gewenst ;).

Thnx alvast.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

delete from table ? bedoel je dat?

Programmer - an organism that turns coffee into software.


Verwijderd

DELETE FROM TABLE

Verwijderd

hoe bedoel je? alle data of alle tables+data?
als je alle data wil is het gewoon DELETE FROM table etc..
als je alles plus tables weg wil whipen issut DROP TABLE table

  • Config
  • Registratie: Januari 2000
  • Laatst online: 06-01-2025
ik wil alle tables met alle data weghebben

en ik kan de database niet verwijderen.

Verwijderd

doe je toch gewoon drop table tabelnaam voor alle tabellen???

edit:

hmm, best wel jah :), kan hem alleen niet meer verwijderen... raar.

Verwijderd

pfff, antwoord is onderhand nu wel 3x gegeven :(

Verwijderd

Het probleem was dus dat hij 25+ tables had, en hij wilde weten of die met een enkel commando weg kon halen, ipv 25+ keer de drop table query te herhalen.

Het probeerselte 'drop table %' werkte niet echt...:(

Verwijderd

Het probeerselte 'drop table %' werkte niet echt...:(

DROP TABLE [IF EXISTS] tbl_name [, tbl_name,...]

Dus hij kan ze allemaal in een keer intypen gescheiden door comma's ;)

Verwijderd

Yep, maar dan nog moet'ie alle tables intypen. Het ging erom of er een manier was om alle tables in 1x te pakken zonder de namen van al die tables te moeten inkloppen..

Schijnbaar niet dus, en das eigenlijk maar goed ook want anders krijg je hier weer vragen van 'ik ben alles kwijt per ongeluk...hoe kan ik dat terugzetten'
;)

  • Config
  • Registratie: Januari 2000
  • Laatst online: 06-01-2025
The Daan: LOL :)

Grootste gedeelte van de rest:

Screw you, jullie weten blijkbaar niet tegen wie je het hebt...pff, DELETE FROM table..ja mijn aars...:(

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

misschien is dit een ideetje:

1. maak een file in.sql met daarin "show tables;"
2. op de cmdline mysql -s databasenaam <in.sql >out.sql uitvoeren

je hebt nu in het bestand out.sql alle namen van de tables. Hoef je alleen nog maar met een tekst-editor effe overal "drop table " voor te zetten.
En daarna weer met:
mysql test <out.sql uit te voeren op de database.

HTH.

ps. toch jammer dat mySQL geen sub-selects ondersteund, misschien dat het dan een stuk makkelijk was geweest.

Today's subliminal thought is:


Verwijderd

hehe

ja kan ook, maar dan moet'ie weer 25 keer drop table voorzetten. En dat blijft een manier met een query voor elke table apart.

Het kan dus blijkbaar niet met een wildcard oid.

subselects hadden wel het een en ander op kunnen lossen idd.

  • tomato
  • Registratie: November 1999
  • Niet online
In MySQL zul je het idd niet voor elkaar krijgen met één regel typen. Als je er een scripttaaltje bijpakt ook niet, maar je zou het iig wat kunnen automatiseren en als je veel tables hebt kan dat ook schelen.
Maak een simpel stukje code dat gewoon elke table langsloopt en die verwijdert/leeg maakt.
Al zal je tijdswinst bij 25 tables hier niet hoog zijn, maarja, wat is nou ook even 25 keer delete from table intypen...

Verwijderd

Andere mogelijkheid is een script (bv Perl):

#!/usr/bin/perl
@table = `echo show tables; | /PAD/NAAR/mysql -B -D JOUW_DATABASE OPTIES`;
shift @table;      # eerste regel moet weg: is de kop
foreach (@table) {
    chomp;
    print "DROP TABLE $_;\n";
}

Dat stukje in vet even aanpassen (-B en -D laten staan... -B zorgt voor de batchverwerking).

Draaien van het script gewoon laat alle SQL statements zijn die je moet uitvoeren om je tabellen te verwijderen. Als dat werkt kan je de output van het script mysql in sturen met een pipe bijvoorbeeld.

HTH

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Waarom maak je niet gelijk een php die dat doet??
is ook niet zo moeilijk, en dan maak je aan de hand van die lijst een array, en een voor een roep je drop table aan met een for/while :)

Verwijderd

Ja, maak een mook paginatje met een 'Nuke DB' knop erop en noem die index.php in de root van je website, en geef ons vervolgens de URL .... MUAHAHAHA!!!

Uhm .. oopz .. nevah mind :P

  • phizzie
  • Registratie: Juni 2000
  • Laatst online: 28-04 20:04

phizzie

always look on the bright side

Helaas is het antwoord niet snel gegeven, maar dit is een goede optie voor een ierder die na al die tijd nog steeds een snelle manier wil hebben voor het leegslopen van een database....

Start je excel of andere favoriete berekeningsprogramma op. Ik ga er van uit dat je phpMyAdmin of iets dergelijks gebruikt, zodat je makkelijk dingen kunt knippen en plakken.

Selecteer alle tabellen in je webbrowser terwijl jet het totaal overzicht open hebt staan. Selecteer de tabelnamen en alles wat er naast zit.

Kopieer dat allemaal in je berekeningsprogramma, plak het in Cel B1 als alles goed is plakt hij het per cel apart.

Typ dan in Cel A1 "Drop Table" en schrijf in cel C1 " ; ".
Trek en kopieer deze waarden naar beneden totdat je alle tabellen voorzien hebt, voorbeeld:

|____ A1_____|_____ B1 ____|____C1____|
Drop Table_____ naam tabel_______ ;

Kopieer dan ALLE tabelwaarden A1 : C1 tot en met An : Cn (vul voor n in alle rijen die je zo gemaakt hebt)

plak deze data in het veld voor de syntaxuitvoering in phpMyAdmin en klik op uitvoeren.

Tadaa, je tabellen zijn allemaal verwijderd en je hebt weer een schone database.

aw snap, was dat het alweer?


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:12
Is hier eigenlijk niet truncate voor bedoeld, om 1 tabel leeg te maken?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Humz ja, bedankt voor de info maar om een zwaar flamerig topic daarvoor na 3 jaar te kicken is wel erg overkill :/

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.