Obciąć wszystkie tabele w bazie danych MySQL za pomocą jednego polecenia?
347
Czy istnieje zapytanie (polecenie), aby obciąć wszystkie tabele w bazie danych w ramach jednej operacji? Chcę wiedzieć, czy mogę to zrobić za pomocą jednego zapytania.
Obciąć wszystkie tabele? masz na myśli obcięcie wszystkich kolumn wszystkich tabel w bazie danych? W jakim języku jest to zapytanie? (np. SQL, MySQL, Oracle, Postgres itp.)
Jay
Nie jestem pewien, czy poleciłbym to zrobić, ponieważ można bardzo łatwo wpaść w kłopoty. Czy istnieje powód, dla którego nie możesz po prostu skryptu obciąć i uruchomić skryptu?
GrayWizardx,
dzięki 4 odpowiedź, ale jedynym powodem, dla którego skrypt nie działa, jest mało czasu, więc pomyślałem o uruchomieniu zapytania w mysql
devang
ya jest w mysql..i zapytanie oznacza coś podobnego do obcięcia tabeli nazwa_tabeli..tam chcę obciąć wszystkie wiersze wszystkich tabel w mojej db w jednym zapytaniu
devang
Możesz użyć Information_Schema z kursorem. Nie jestem pewien co do MySql, ale powinien obsługiwać Information_Schema.Tables
GrayWizardx
Odpowiedzi:
340
Upuść (tj. Usuń tabele)
mysql -Nse 'show tables' DATABASE_NAME |whilereadtable; do mysql -e "drop table $table" DATABASE_NAME; done
Obetnij (tj. Puste tabele)
mysql -Nse 'show tables' DATABASE_NAME |whilereadtable; do mysql -e "truncate table $table" DATABASE_NAME; done
Tak, czyste, ty. Ale może być konieczne uruchomienie tego polecenia z opcją -uUSER -pPASSWORD. Być może będziesz musiał uruchomić go wiele razy, jeśli masz FK bez usuwania w kaskadzie.
mihaicc,
47
Jeśli wystąpią problemy z FK, takie jak „ Nie można usunąć lub zaktualizować wiersza nadrzędnego: ograniczenie klucza obcego nie powiedzie się ”, należy wyłączyć sprawdzanie klucza obcego, modyfikując polecenie w następujący sposób:mysql -e "SET FOREIGN_KEY_CHECKS = 0; drop table $table" DATABASE_NAME
Ethan P.
24
Nie ma jednak potrzeby zapętlania klienta mysql. Wyjmij to z pętli w następujący sposób:mysql -Nse 'show tables' DATABASE_NAME | while read table; do echo "drop table $table;"; done | mysql DATABASE_NAME
Na podstawie powyższej odpowiedzi i komentarzy, a ponieważ nie działały one zgodnie z oczekiwaniami, stworzyłem prosty skrypt bash, którego można użyć do tego. Można go znaleźć na stronie: gist.github.com/mocanuga/eff26a3dcc40ef657a1c812f68511f6d
mocanuga
145
obetnij wiele tabel bazy danych w instancji Mysql
SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME,';')FROM INFORMATION_SCHEMA.TABLES where table_schema in('db1_name','db2_name');
Użyj wyniku zapytania, aby obciąć tabele
Uwaga: być może pojawi się ten błąd:
ERROR 1217(23000): Cannot deleteorupdate a parent row: a foreignkeyconstraint fails
Dzieje się tak, jeśli istnieją tabele z odniesieniami do kluczy obcych do tabeli, którą próbujesz upuścić / obciąć.
Przed obcinaniem tabel Wszystko, co musisz zrobić, to:
Jest to prawdopodobnie najlepsze rozwiązanie, jeśli masz użytkownika i hasło do bazy danych i nie chcesz wpisywać ich w widoczny sposób w powłoce.
Bach
5
Pozytywne, ponieważ to rozwiązanie wymaga tylko dostępu do bazy danych, a nie dostępu SSH. Ponadto jest niezależny od systemu operacyjnego.
mastazi
@mastazi mam kilka pytań: 1. co oznacza skrót „table_schema”? czy stoi na podstawie nazwy schematu? 2. co oznacza skrót TABLE_NAME? czy to oznacza tabele, które należy usunąć? 3. Czy powinienem napisać wysokie tabele, które należy usunąć, używając polecenia typu „(db1_name”, „db2_name”)?
AAEM,
@Ahmed jedyne wymagane podstawienia to zastąpienie db1_name i db2_name nazwami baz danych. Następnie musisz skopiować wyniki tego zapytania i wkleić je jako nowe zapytanie mysql i wykonać je. INFORMACJE_SCHEMA to wbudowany schemat, który jest wstępnie instalowany w każdej instalacji MySQL i zawiera informacje o twoich bazach danych, nie dotykaj go, albo MySQL zacznie się źle zachowywać :-) table_schema i nazwa_tabeli są kolumnami tabeli o nazwie „TABLES” w obrębie information_schema
mastazi
„nazwa_db” oznacza nazwę schematu? Mam tylko 1 schemat, który chcę usunąć dane z tabel
AAEM
67
Użyj phpMyAdmin w następujący sposób:
Widok bazy danych => Zaznacz wszystko (tabele) => Puste
Jeśli chcesz zignorować sprawdzanie klucza obcego, możesz odznaczyć pole z napisem:
[] Włącz sprawdzanie klucza obcego
Aby uzyskać to pole wyboru, musisz uruchomić przynajmniej wersję 4.5.0 lub nowszą.
cześć .. dziękuję za odpowiedź próbowałem tego zapytania, ale wydaje się, że nie działa .. to coś w stylu obcięcia tabeli nazwa_tabeli, której mogę używać dla wszystkich tabel w mojej db ..
devang
Zapomniałem, że MySQL nie obsługuje bezpośrednio operatora „+”. Zakładając, że to jest błąd, dodałem powyższy przykład CONCAT (). Jeśli nadal pojawia się komunikat o błędzie, udostępnij aktualny komunikat o błędzie.
plaża
to zapytanie działa, ale co jeśli mam nazwę db diff np. devang..jest to moja nazwa db, więc jeśli użyję jej zgodnie z powyższym zapytaniem, pojawi się błąd Foll. Tabela „devang.TABLES” nie istnieje
devang
3
Ahh INFORMACJE_SCHEMA to widok istniejący w aktywnej bazie danych. Jeśli zmienisz bazę danych, widok zostanie wykonany na tej bazie danych. Przy zmianie baz danych nie ma potrzeby modyfikowania zapytania. Wystarczy wykonać następujące czynności: 1) zmienić aktywną bazę danych. 2) uruchom skrypt. 3) skopiuj wyniki 4) wklej wyniki z powrotem do edytora 5) uruchom wyniki. Wszystkie tabele w aktywnej bazie danych są teraz obcinane.
plaża
1
STRZEC SIĘ! To wybiera wszystkie tabele we wszystkich bazach danych (nawet te NIE znajdujące się w bieżącej bazie danych. Przykład MySQL nie działa, ale w moim przypadku zwrócił 293 wierszy (tabel) zamiast 66. Wyobraź sobie utratę danych ...
f4der
19
Znalazłem to, aby usunąć wszystkie tabele z bazy danych:
Jeśli chcesz pracować z bieżącą bazą danych (a tym samym uczynić ten kod przenośnym), zmień ostatni warunek SELECTna następujący:AND table_schema = DATABASE();
alx
Dla mnie to nie obcina się. MySQL 5.7.25
Lucas Bustamante
14
Uznałem, że najłatwiej jest po prostu zrobić coś takiego jak poniższy kod, po prostu zastąpić nazwy tabel własnymi. ważne, aby upewnić się, że ostatni wiersz jest zawsze ustawiony FOREIGN_KEY_CHECKS = 1;
SET FOREIGN_KEY_CHECKS=0;TRUNCATE`table1`;TRUNCATE`table2`;TRUNCATE`table3`;TRUNCATE`table4`;TRUNCATE`table5`;TRUNCATE`table6`;TRUNCATE`table7`;SET FOREIGN_KEY_CHECKS=1;
Aby obciąć tabelę, należy usunąć ograniczenia klucza obcego odwzorowane na kolumny w tej tabeli z innych tabel (w rzeczywistości na wszystkie tabele w określonej bazie danych / schemacie).
Tak więc wszystkie ograniczenia klucza obcego muszą zostać początkowo usunięte, a następnie obcięte tabeli.
Opcjonalnie użyj tabeli optymalizacji (w mysql, innodb engine esp), aby odzyskać zużyte miejsce / rozmiar danych w systemie operacyjnym po obcięciu danych.
Po obcięciu danych ponownie utwórz te same ograniczenia klucza obcego w tej samej tabeli. Zobacz poniżej skrypt, który wygeneruje skrypt do wykonania powyższych operacji.
jeśli używasz SQL Server 2005, istnieje ukryta procedura składowana, która pozwala wykonać polecenie lub zestaw poleceń dla wszystkich tabel w bazie danych. Oto jak wywołałbyś za TRUNCATE TABLEpomocą tej procedury składowanej:
W przypadku MySql można jednak użyć mysqldump i określić opcje --add-drop-tablesi, --no-dataaby upuścić i utworzyć wszystkie tabele ignorujące dane. lubię to:
Nie. Nie ma jednego polecenia, aby obciąć wszystkie tabele mysql jednocześnie. Będziesz musiał utworzyć mały skrypt, aby obcinać tabele jeden po drugim.
Oto mój wariant, aby mieć „jedno zdanie, aby obciąć je wszystkie”.
Po pierwsze, używam osobnej bazy danych o nazwie „util” dla procedur przechowywanych mojego pomocnika. Kod mojej procedury składowanej do obcinania wszystkich tabel to:
SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME,';')FROM INFORMATION_SCHEMA.TABLES where table_schema in('databasename1','databasename2');
Jeśli nie można usunąć lub zaktualizować wiersza nadrzędnego: ograniczenie klucza obcego kończy się niepowodzeniem
Dzieje się tak, jeśli istnieją tabele z odniesieniami do kluczy obcych do tabeli, którą próbujesz upuścić / obciąć.
Przed obcinaniem tabel Wszystko, co musisz zrobić, to:
SET FOREIGN_KEY_CHECKS=0;
Obetnij tabele i zmień je z powrotem na
SET FOREIGN_KEY_CHECKS=1;
użytkownik ten kod php
$truncate= mysql_query("SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';') as tables_query FROM INFORMATION_SCHEMA.TABLES where table_schema in ('databasename')");while($truncateRow=mysql_fetch_assoc($truncate)){
mysql_query($truncateRow['tables_query']);}?>
Oto procedura, która powinna obciąć wszystkie tabele w lokalnej bazie danych.
Daj mi znać, jeśli to nie zadziała, a ja usunę tę odpowiedź.
Niesprawdzone
CREATEPROCEDURE truncate_all_tables()BEGIN-- Declare local variablesDECLARE done BOOLEAN DEFAULT0;DECLARE cmd VARCHAR(2000);-- Declare the cursorDECLARE cmds CURSORFORSELECT CONCAT('TRUNCATE TABLE ', TABLE_NAME)FROM INFORMATION_SCHEMA.TABLES;-- Declare continue handlerDECLARECONTINUE HANDLER FOR SQLSTATE '02000'SET done=1;-- Open the cursorOPEN cmds;-- Loop through all rows
REPEAT
-- Get order numberFETCH cmds INTO cmd;-- Execute the command
PREPARE stmt FROM cmd;EXECUTE stmt;DROP PREPARE stmt;-- End of loop
UNTIL done END REPEAT;-- Close the cursorCLOSE cmds;END;
Uważam, że TRUNCATE TABLE .. ma problemy z ograniczeniami klucza obcego, nawet po NOCHECK CONSTRAINT ALL, więc zamiast tego używam instrukcji DELETE FROM. Oznacza to, że ziarna tożsamości nie są resetowane, zawsze można dodać DBCC CHECKIDENT, aby to osiągnąć.
I Użyj poniższego kodu, aby wydrukować sql do okna komunikatu, aby obciąć wszystkie tabele w bazie danych przed uruchomieniem. To tylko utrudnia popełnienie błędu.
Nie jestem pewien, ale myślę, że istnieje jedna komenda, za pomocą której można skopiować schemat bazy danych do nowej bazy danych. Po wykonaniu tej czynności można usunąć starą bazę danych, a następnie ponownie skopiować schemat bazy danych do starej nazwy.
mysqldump -uuser -ppassword --no-data salesLeadsBrittany> salesLeadsTemplate.sql Spowoduje to utworzenie pliku sql tylko ze schematem (bez danych). Możesz usunąć bazę danych po tym poleceniu i możesz ponownie utworzyć bazę danych, importując schemat.
GJ.
0
Wiem, że to nie jest dokładnie jedna komenda, ale pożądany wynik można uzyskać z poziomu phpMyAdmin, wykonując następujące kroki:
Wybierz (wszystkie) tabele do usunięcia (Zaznacz wszystko)
Wybierz „Drop” / „Truncate” z listy „With selected:”
Na stronie potwierdzenia („Czy naprawdę chcesz:”) skopiować zapytanie (wszystko z czerwonym tłem)
Idź na górę i kliknij SQL i napisz: „SET FOREIGN_KEY_CHECKS = 0;” następnie wklej wcześniej skopiowane zapytanie
Kliknij „Idź”
Chodzi o to, aby szybko pobrać wszystkie tabele z bazy danych (co robisz w 5 sekund i 2 kliknięcia), ale najpierw wyłącz sprawdzanie klucza obcego. Bez interfejsu CLI i bez usuwania bazy danych i dodawania jej ponownie.
TB=$( mysql -Bse "show tables from DATABASE");for i in${TB};
do echo "Truncating table ${i}";
mysql -e "set foreign_key_checks=0; set unique_checks=0;truncate table DATABASE.${i}; set foreign_key_checks=1; set unique_checks=1";
sleep 1;
done
-
David
Dziękujemy za poświęcenie czasu na sformatowanie kodu, ale w ten sposób należy go zastosować.
-Kurt
W systemie UNIX lub Linux:
Upewnij się, że jesteś w powłoce bash. Te polecenia należy uruchamiać z wiersza poleceń w następujący sposób.
Uwaga:
Przechowuję moje poświadczenia w pliku ~ / .my.cnf, więc nie muszę ich podawać w wierszu polecenia.
Uwaga:
cpm to nazwa bazy danych
Pokazuję tylko małą próbkę wyników z każdego polecenia.
Znajdź ograniczenia dotyczące klucza obcego:
klarsen@Chaos:~$ mysql -Bse "select concat(table_name, ' depends on ', referenced_table_name)
from information_schema.referential_constraints
where constraint_schema = 'cpm'
order by referenced_table_name"
system_akceptacji_zewnętrznej zależy od żądania_akceptacji
adres zależy od klienta
identyfikator klienta zależy od klienta
ID_zewnętrzny zależy od klienta
dane uwierzytelniające zależą od klienta
adres e-mail zależy od klienta
prośba o zatwierdzenie zależy od klienta
stan_statusu zależy od klienta
Customer_image zależy od klienta
Lista tabel i liczby wierszy:
klarsen@Chaos:~$ mysql -Bse "SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'cpm'"| cat -n
1 address 2972 approval_external_system 03 approval_request 04 country 1895 credential 4686 customer 67767 customer_identification 56318 customer_image 29 customer_status 13639
Obetnij swoje stoły:
klarsen@Chaos:~$ TB=$( mysql -Bse "show tables from cpm");for i in${TB}; do echo "Truncating table ${i}"; mysql -e "set foreign_key_checks=0; set unique_checks=0;truncate table cpm.${i}; set foreign_key_checks=1; set unique_checks=1"; sleep 1; done
To traci wszystkie ograniczenia, uprawnienia, widoki itp. W tabelach - co jest znaczną uciążliwością.
Jonathan Leffler,
Możesz zrobić usunięcie, a następnie ponownie ustawić wszystkie tabele zamiast obcinać. Zakładam, że znak nie jest spowodowany frustracją. Po prostu przywróć kopię zapasową.
hej James, myślę, że OP szuka po pierwsze linijki .... a po drugie polecenia, aby wszystkie tabele zdjąć i usunąć. wymaga to interwencji użytkownika. dzięki za post
Odpowiedzi:
Upuść (tj. Usuń tabele)
Obetnij (tj. Puste tabele)
źródło
mysql -e "SET FOREIGN_KEY_CHECKS = 0; drop table $table" DATABASE_NAME
mysql -Nse 'show tables' DATABASE_NAME | while read table; do echo "drop table $table;"; done | mysql DATABASE_NAME
obetnij wiele tabel bazy danych w instancji Mysql
Użyj wyniku zapytania, aby obciąć tabele
Uwaga: być może pojawi się ten błąd:
Dzieje się tak, jeśli istnieją tabele z odniesieniami do kluczy obcych do tabeli, którą próbujesz upuścić / obciąć.
Przed obcinaniem tabel Wszystko, co musisz zrobić, to:
Obetnij tabele i zmień je z powrotem na
źródło
Użyj phpMyAdmin w następujący sposób:
Jeśli chcesz zignorować sprawdzanie klucza obcego, możesz odznaczyć pole z napisem:
Aby uzyskać to pole wyboru, musisz uruchomić przynajmniej wersję 4.5.0 lub nowszą.
To nie jest MySQL CLI-fu, ale hej, to działa!
źródło
MS SQL Server 2005+ (Usuń PRINT do faktycznego wykonania ...)
Jeśli platforma bazy danych obsługuje widoki INFORMACJE_SCHEMA, weź wyniki następującego zapytania i wykonaj je.
Wypróbuj to dla MySQL:
Dodanie średnika do Concat ułatwia korzystanie np. Z poziomu środowiska roboczego mysql.
źródło
Znalazłem to, aby usunąć wszystkie tabele z bazy danych:
Przydatne, jeśli masz ograniczone rozwiązanie hostingowe (nie możesz upuścić całej bazy danych).
Zmodyfikowałem go, aby obciąć tabele. Dla mysqldump nie ma „--add-truncate-table”, więc zrobiłem:
działa dla mnie - edytuj, poprawiając literówkę w ostatnim poleceniu
źródło
źródło
SELECT
na następujący:AND table_schema = DATABASE();
Uznałem, że najłatwiej jest po prostu zrobić coś takiego jak poniższy kod, po prostu zastąpić nazwy tabel własnymi. ważne, aby upewnić się, że ostatni wiersz jest zawsze ustawiony FOREIGN_KEY_CHECKS = 1;
źródło
Spowoduje to wydrukowanie polecenia obcięcia wszystkich tabel:
źródło
Po obcięciu danych ponownie utwórz te same ograniczenia klucza obcego w tej samej tabeli. Zobacz poniżej skrypt, który wygeneruje skrypt do wykonania powyższych operacji.
Teraz uruchom wygenerowany skrypt Db Truncate.sql
Korzyści. 1) Odzyskaj miejsce na dysku 2) Nie trzeba upuszczać i odtwarzać schematu DB / Schema o tej samej strukturze
Wady 1) Ograniczenia FK powinny być nazwami w tabeli o nazwie zawierającej „FK” w nazwie ograniczenia.
źródło
jeśli używasz SQL Server 2005, istnieje ukryta procedura składowana, która pozwala wykonać polecenie lub zestaw poleceń dla wszystkich tabel w bazie danych. Oto jak wywołałbyś za
TRUNCATE TABLE
pomocą tej procedury składowanej:Oto dobry artykuł, który rozwija dalej.
W przypadku MySql można jednak użyć mysqldump i określić opcje
--add-drop-tables
i,--no-data
aby upuścić i utworzyć wszystkie tabele ignorujące dane. lubię to:Podręcznik użytkowania mysqldump z dev.mysql
źródło
Użyj tego i utwórz zapytanie
Teraz użyj tego, aby użyć tego zapytania
jeśli pojawi się taki błąd
najłatwiejszym sposobem jest przejście do górnej części pliku. Dodaj tę linię
co mówi, że nie chcemy sprawdzać ograniczeń klucza obcego podczas przeglądania tego pliku.
Obetnie wszystkie tabele w bazach danych db1 i bd2.
źródło
Nie. Nie ma jednego polecenia, aby obciąć wszystkie tabele mysql jednocześnie. Będziesz musiał utworzyć mały skrypt, aby obcinać tabele jeden po drugim.
ref: http://dev.mysql.com/doc/refman/5.0/en/truncate-table.html
źródło
Oto mój wariant, aby mieć „jedno zdanie, aby obciąć je wszystkie”.
Po pierwsze, używam osobnej bazy danych o nazwie „util” dla procedur przechowywanych mojego pomocnika. Kod mojej procedury składowanej do obcinania wszystkich tabel to:
Po zapisaniu tej procedury przechowywanej w bazie danych util można ją wywołać w ten sposób
który jest teraz dokładnie jednym stwierdzeniem :-)
źródło
tutaj, bo wiem tutaj
Jeśli nie można usunąć lub zaktualizować wiersza nadrzędnego: ograniczenie klucza obcego kończy się niepowodzeniem
Dzieje się tak, jeśli istnieją tabele z odniesieniami do kluczy obcych do tabeli, którą próbujesz upuścić / obciąć.
Przed obcinaniem tabel Wszystko, co musisz zrobić, to:
Obetnij tabele i zmień je z powrotem na
użytkownik ten kod php
sprawdź szczegóły tutaj link
źródło
Oto procedura, która powinna obciąć wszystkie tabele w lokalnej bazie danych.
Daj mi znać, jeśli to nie zadziała, a ja usunę tę odpowiedź.
Niesprawdzone
źródło
Uważam, że TRUNCATE TABLE .. ma problemy z ograniczeniami klucza obcego, nawet po NOCHECK CONSTRAINT ALL, więc zamiast tego używam instrukcji DELETE FROM. Oznacza to, że ziarna tożsamości nie są resetowane, zawsze można dodać DBCC CHECKIDENT, aby to osiągnąć.
I Użyj poniższego kodu, aby wydrukować sql do okna komunikatu, aby obciąć wszystkie tabele w bazie danych przed uruchomieniem. To tylko utrudnia popełnienie błędu.
źródło
Nie jestem pewien, ale myślę, że istnieje jedna komenda, za pomocą której można skopiować schemat bazy danych do nowej bazy danych. Po wykonaniu tej czynności można usunąć starą bazę danych, a następnie ponownie skopiować schemat bazy danych do starej nazwy.
źródło
Wiem, że to nie jest dokładnie jedna komenda, ale pożądany wynik można uzyskać z poziomu phpMyAdmin, wykonując następujące kroki:
Chodzi o to, aby szybko pobrać wszystkie tabele z bazy danych (co robisz w 5 sekund i 2 kliknięcia), ale najpierw wyłącz sprawdzanie klucza obcego. Bez interfejsu CLI i bez usuwania bazy danych i dodawania jej ponownie.
źródło
-
David
Dziękujemy za poświęcenie czasu na sformatowanie kodu, ale w ten sposób należy go zastosować.
-Kurt
W systemie UNIX lub Linux:
Upewnij się, że jesteś w powłoce bash. Te polecenia należy uruchamiać z wiersza poleceń w następujący sposób.
Uwaga:
Przechowuję moje poświadczenia w pliku ~ / .my.cnf, więc nie muszę ich podawać w wierszu polecenia.
Uwaga:
cpm to nazwa bazy danych
Pokazuję tylko małą próbkę wyników z każdego polecenia.
Znajdź ograniczenia dotyczące klucza obcego:
Lista tabel i liczby wierszy:
Obetnij swoje stoły:
Sprawdź, czy zadziałało:
W oknie systemu Windows:
UWAGA:
cpm to nazwa bazy danych
źródło
Poniższe zapytanie MySQL samo wygeneruje jedno zapytanie, które obetnie wszystkie tabele w danej bazie danych. Pomija klucze ZAGRANICZNE:
źródło
źródło
Soln 1)
Soln 2)
-- edytować ----
źródło
To zadziałało dla mnie. Zmień odpowiednio bazę danych, nazwę użytkownika i hasło.
mysql -Nse 'show tables' -D DATABASE -uUSER -pPWD | while read table; do echo "SET FOREIGN_KEY_CHECKS = 0;drop table \`$table\`;SET FOREIGN_KEY_CHECKS = 1;"; done | mysql DATABASE -uUSER -pPWD
źródło
Pomysłem może być po prostu upuszczenie i odtworzenie tabel?
EDYTOWAĆ:
@Jathanathan Leffler: Prawda
Inne sugestie (lub przypadek, w którym nie musisz obcinać WSZYSTKICH tabel):
Dlaczego nie stworzyć podstawowej procedury składowanej, aby obciąć określone tabele
źródło
Oto fragment kodu, którego używam do czyszczenia tabeli. Po prostu zmień informacje o $ conn i TABLE_NAME.
źródło