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
Savjetodavna područja vezana uz ovu temu
Ove su usluge usklađene s temom članka i daju čišći prijelaz od edukativnog sadržaja do konkretne implementacije.
Nastavite čitati
Povezani članci
Prvo po zajedničkim kategorijama, a zatim po najjačem preklapanju u tagovima.