How can I empty the contents of all tables in my database in phpMyAdmin without dropping any of the tables in the database?
Since I do this several times an hour while i
Create a SQL script with multiple DELETE statements (one for each table) and execute it.
Get into phpMyAdmin and select the database that you want. Select the SQL tab and paste the SQL script into the window. Hit Go.
Look here too:
Drop all tables from a MySQL Database without deletion
You could export the table structures only like this:
mysqldump -u root -p --no-data mydb > backup_info.sql
then drop the whole database, recreate it and restore from the backup.
Easy enough to script the whole thing.
IMHO the easiest solution is:
Actually, went deeper and wrote this:
SET @command:='';
SELECT @command:=CONCAT(@command, 'TRUNCATE TABLE ',T.TABLE_NAME,';')
FROM INFORMATION_SCHEMA.tables T
WHERE T.table_type = 'BASE TABLE' AND T.table_schema='YOUR_TABLE_SCHEMA';
PREPARE bye_world FROM @command;
EXECUTE bye_world;
DEALLOCATE PREPARE bye_world;
It selects all table names from provided schema YOUR_TABLE_SCHEMA
and puts them into a @command
user variable, forming a query for each one like this: TRUNCATE TABLE TABLE_NAME;
Then i just prepare selected statement and execute it. Note, that you must declare user variable before query, or it will be 0
and mess up our statement.
Tutorial
Using MySQL DROP TABLE To Remove Existing Tables
Unfortunately, there is no TRUNCATE DATABASE
or equivalent. With that said, you could probably use some kind of stored procedure that go through all tables in your database and truncate them. I found something of that kind here, but I don't know whether it works. (You should probably read the comment discussion too)
You can delete all data from phpmyadmin function easily. Maybe this feature didn't exists during 2010 when this question was posted, but I feel all beginners can refer to this.
Delete all data from database