MySQL mysqldump排除指定表

原创
2012/08/22 17:57
阅读数 2.4K

>>表名固定

#!/bin/sh
for j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables`
do
	case $j in
		mo_log|mt_log|report_info)
			:
			;;
		*)
		mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql
	esac
done

>>表名不固定
#!/bin/sh
for j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables`
do
	for i in "$@"
	do
		if [ $j != $i ];then
			mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql
		fi
	done
done

>>更简洁的方法

#!/bin/sh
for j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables`
do
	echo $@ | grep -wq "\<$j\>"
	if [ $? -ne 0 ];then
		mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql
	fi
done

>>使用方法

sh exclude.sh mo_log mt_log report_log

#定义一个shell数组
tables=(mo_log mt_log report_log)
sh exclude.sh ${tables[@]}

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
1 收藏
0
分享
返回顶部
顶部