Як видалити всі таблиці із БД PostgreSQL и MySQL

В категорії Підказки от 14 Лютого, 2023. Автор admin

Видалення всіх таблиці в БД для 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 -N -s -u $USER -p$PASSWD $DB -e 'show tables' | awk '{print "drop table " $1 ";"}' | mysql -u $USER -p$PASSWD $DB

де

DB — база в якій потрібно видалити таблиці
USER и PASSWD — логін та пароль користувача в якого є повні права доступу до бази

Теги: ,