Blog članak

Kako pobrisati sve tablice u MySQL bazi

Uklonite sve tablice iz MySQL baze bez brisanja same baze i bez ponovnog kreiranja korisnika, dozvola i drugih objekata.

Može doći trenutak kada trebate pobrisati sve tablice iz MySQL baze. U ovom članku pokazujem kako to napraviti jednostavno.

Uklanjanjem svih tablica iz baze uklonit ćete i sve podatke koji su u njima, pa ćete dobiti ono što izgleda kao prazna baza.

Možete obrisati cijelu bazu i ponovno je napraviti, ali tako gubite korisnike, njihove dozvole i sve druge objekte koje ste kreirali, poput viewova i stored procedura.

Brisanje samih tablica jednostavna je stvar ako želite resetirati podatke.

Korištenje SQL upita

Foreign key ograničenja mogu vas spriječiti da izvršite drop table, pa prvo privremeno isključite sva foreign key ograničenja kako bi drop naredbe mogle proći:

SET FOREIGN_KEY_CHECKS = 0;

Zatim izlistajte sve dostupne tablice iz trenutačne baze:

SELECT
    table_name
FROM
    information_schema.tables
WHERE
    table_schema = db_name;

I pobrišite tablice jednu po jednu s popisa:

DROP TABLE IF EXISTS table1;

Ne zaboravite ponovno uključiti foreign key provjere kada završite:

SET FOREIGN_KEY_CHECKS = 1;

Korištenje mysqldumpa

Postoji i drugo zaobilazno rješenje pomoću mysqldump, koje je brže i jednostavnije.

Prvo isključite foreign key provjeru:

echo "SET FOREIGN_KEY_CHECKS = 0;" > ./temp.sql

Zatim dumpajte bazu bez podataka i generirajte drop table naredbe za sve tablice:

mysqldump --add-drop-table --no-data -u root -p db_name | grep 'DROP TABLE' >> ./temp.sql

Ponovno uključite foreign key provjeru:

echo "SET FOREIGN_KEY_CHECKS = 1;" >> ./temp.sql

Sada vratite bazu pomoću dump datoteke:

mysql -u root -p db_name < ./temp.sql

Povezane usluge

Ove su usluge usklađene s temom članka i daju čišći prijelaz od edukativnog sadržaja do konkretne implementacije.

Nastavite čitati

Prvo po zajedničkim kategorijama, a zatim po najjačem preklapanju u tagovima.