Как удалить все таблицы из БД PostgreSQL и MySQL ?

Многие конечно не будут заморачиваться удалением таблиц и удалят и создадут заново базу, это удобно если у Вас только один пользователь имеет доступ к БД с простыми набором правами, но пользователей много, то удаление может быть не самой хорошей идеей.

Итак как удалить все таблицы из БД PostgreSQL и MySQL читаем ниже…

Удаление всех таблиц в БД для PostgreSQL:

1. Сохраняем список таблиц в файл:

psql -U PGUSER -t -d PGDBNAME -c \
"SELECT 'DROP TABLE ' || n.nspname || '.' || c.relname || ' CASCADE;' \
FROM pg_catalog.pg_class AS c LEFT JOIN pg_catalog.pg_namespace AS n \
ON n.oid = c.relnamespace WHERE relkind = 'r' AND n.nspname NOT IN \
('pg_catalog', 'pg_toast') AND pg_catalog.pg_table_is_visible(c.oid)" \
> /tmp/droptables

2. Удаляем таблицы:

psql -U PGUSER -d PGDBNAME -f /tmp/droptables

,где
PGUSER — имя пользователя
PGDBNAME — имя БД в которой нужно удалить все таблицы

Удаление всех таблиц в БД для MySQL:

DB="MYDB";USER="MYUSER";PASSWD="MYPASSWD";mysql --silent --skip-column-names -u $USER -p$PASSWD $DB -e 'show tables' | awk '{print "drop table " $1 ";"}' | mysql -u $USER -p$PASSWD $DB

,где в переменных
DB — база в которой нужно удалить все таблицы
USER и PASSWD — логин и пароль пользователя у которого есть полные права на базу из переменной DB в которой нужно удалить все таблицы.