MySQL tips: drop all tables from database

Маленький скриптец для удаления всех таблиц из БД:

mysql -u user -ppassword db_name -e "show tables"\
  | grep -v Tables_in | grep -v "+" \
  | gawk '{print "drop table " $1 ";"}' \
  | mysql -u user -ppassword db_name

Еще можно написать хранимую процедуру для этого, примерно так:

delimiter $$
DROP PROCEDURE IF exist drop_tables();
create procedure drop_tables()
begin
  SELECT
    @drop_sql:=concat('DROP TABLE IF EXISTS ', group_concat(table_name))
    drop_statement
  FROM information_schema.tables
  WHERE table_schema=database();
  IF (@drop_sql IS NOT NULL) THEN
    PREPARE stmt from @drop_sql;
    EXECUTE stmt;
    DROP PREPARE stmt;
  END IF;
end$$
delimiter ;

Вот так вот.

Метки:

Оставьте свой отзыв!

Блог работает на WordPress.
Подписка RSS: все записи, комментарии.