TB=$( mysql -Bse "show tables from DATABASE" );
for i in ${TB};
do echo "Truncating table ${i}";
mysql -e "set foreign_key_checks=0; set unique_checks=0;truncate table DATABASE.${i}; set foreign_key_checks=1; set unique_checks=1";
sleep 1;
done
-
David
Спасибо, что нашли время для форматирования кода, но это то, как он должен применяться.
-Kurt
В системе UNIX или Linux:
Убедитесь, что вы находитесь в оболочке bash. Эти команды должны запускаться из командной строки следующим образом.
Примечание:
Я храню свои учетные данные в моем файле ~ / .my.cnf, поэтому мне не нужно указывать их в командной строке.
Примечание:
cpm - это имя базы данных
Я показываю только небольшую выборку результатов из каждой команды.
Найдите ограничения внешнего ключа:
klarsen@Chaos:~$ mysql -Bse "select concat(table_name, ' depends on ', referenced_table_name)
from information_schema.referential_constraints
where constraint_schema = 'cpm'
order by referenced_table_name"
- утверждение_экстернальной_системы зависит от утверждения_реквеста
- адрес зависит от клиента
- customer_identification зависит от клиента
- external_id зависит от клиента
- учетные данные зависят от клиента
- адрес электронной почты зависит от клиента
- утверждение_запроса зависит от клиента
- customer_status зависит от клиента
- customer_image зависит от клиента
Список таблиц и количество строк:
klarsen@Chaos:~$ mysql -Bse "SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'cpm'" | cat -n
1 address 297
2 approval_external_system 0
3 approval_request 0
4 country 189
5 credential 468
6 customer 6776
7 customer_identification 5631
8 customer_image 2
9 customer_status 13639
Сократите ваши таблицы:
klarsen@Chaos:~$ TB=$( mysql -Bse "show tables from cpm" ); for i in ${TB}; do echo "Truncating table ${i}"; mysql -e "set foreign_key_checks=0; set unique_checks=0;truncate table cpm.${i}; set foreign_key_checks=1; set unique_checks=1"; sleep 1; done
- Адрес усеченной таблицы
- Усеченная таблица утверждение_экстерьер_система
- Усеченный стол утверждение_запрос
- Усеченный стол страна
- Учетные данные усеченной таблицы
- Усеченный стол покупателя
- Усеченный стол customer_identification
- Усеченный стол customer_image
- Усеченный стол customer_status
Убедитесь, что это сработало:
klarsen@Chaos:~$ mysql -Bse "SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'cpm'" | cat -n
1 address 0
2 approval_external_system 0
3 approval_request 0
4 country 0
5 credential 0
6 customer 0
7 customer_identification 0
8 customer_image 0
9 customer_status 0
10 email_address 0
В окне Windows:
Примечание:
cpm - это имя базы данных
C:\>for /F "tokens=*" %a IN ('mysql -Bse "show tables" cpm') do mysql -e "set foreign_key_checks=0; set unique_checks=0; truncate table %a; foreign_key_checks=1; set unique_checks=1" cpm