Как я могу освободить содержание всех таблиц в моей базе данных в phpMyAdmin, не отбрасывая ни одной из таблиц в базе данных?
Так как я делаю это несколько раз в час, в то время как в разработке, я весьма отдельным образом нажал бы "Empty" на все 60 +, представляет в виде таблицы каждый раз.
Создайте SQL-скрипт с несколькими операторами DELETE (по одному для каждой таблицы) и выполните его.
Зайдите в phpMyAdmin и выберите нужную вам базу данных. Выберите вкладку SQL и вставьте SQL-скрипт в окно. Нажмите Go.
Посмотрите также здесь:
вы можете начать с этого запроса
SELECT T.*
FROM INFORMATION_SCHEMA.tables T
WHERE T.table_type = 'BASE TABLE'
И перебирать эти результаты, чтобы построить динамическую строку SQL с настройкой 'DELETE FROM' + T.Table_Name
К сожалению, не существует TRUNCATE DATABASE
или эквивалента. Учитывая это, вы, вероятно, могли бы использовать какую-то хранимую процедуру, которая проходит через все таблицы в вашей базе данных и усекает их. Я нашел что-то подобное здесь, но я не знаю, работает ли это. (Возможно, вам стоит прочитать и обсуждение в комментариях)
drop procedure if exists truncate_tables;
delimiter #
create procedure truncate_tables()
begin
declare tab_name varchar(64);
declare done tinyint unsigned default 0;
declare table_cur cursor for select t.table_name
from
information_schema.schemata s
inner join information_schema.tables t on s.schema_name = t.table_schema
where
s.schema_name = database() and t.table_type = 'BASE TABLE';
declare continue handler for not found set done = 1;
open table_cur;
repeat
fetch table_cur into tab_name;
set @cmd = concat('truncate table ', tab_name);
prepare stmt from @cmd;
execute stmt;
until done end repeat;
close table_cur;
end #