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
--
大卫,
感谢您花时间格式化代码,但这是应该的应用方式。
-库尔特
在 UNIX 或 Linux 机器上:
确保您在 bash shell 中。这些命令将从命令行运行,如下所示。
注意:
我将我的凭据存储在我的 ~/.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"
- approval_external_system 依赖于approval_request
- 地址取决于客户
- customer_identification 取决于客户
- external_id 取决于客户
- 凭据取决于客户
- email_address 取决于客户
- approval_request 取决于客户
- 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
- 截断表地址
- 截断表approval_external_system
- 截断表approval_request
- 截断表国家
- 截断表凭据
- 截断表客户
- 截断表 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