mysql删除数据库shell脚本_shell脚本操作mysql数据库删除重复的数据

由于之前的业务,造成数据库上产生了脏数据,写个脚本删除重复的数据。由于是开发测试环境,所以选择任意删除相同uid中的一条。由于每次执行只删除重复数据的一条,需要重复执行,如果本轮没有数据被删就OK

#!/bin/sh

# delete all company's duplicate uid

MYSQL_BIN_PATH=/data/mysql/server/mysql_3306/bin

MYSQL_SOCK_PATH=/data/mysql/server/mysql_3306/tmp

DBUSER=dbuser

DBPWD=userpwd

DBHOSTNAME=192.168.1.105

PORT=3306

# get all company_id

for company_id in `${MYSQL_BIN_PATH}/mysql -u${DBUSER} -p${DBPWD} -h ${DBHOSTNAME} -P ${PORT} --socket=${MYSQL_SOCK_PATH}/mysql.sock -e "

SELECT company_id FROM company.companypage;"`

do

if [ $company_id != "company_id" ] ; then

# if [ $company_id -eq 2733 ] ; then

suffix=`expr ${company_id} % 100`

for user_id in `${MYSQL_BIN_PATH}/mysql -u${DBUSER} -p${DBPWD} -h ${DBHOSTNAME} -P ${PORT} --socket=${MYSQL_SOCK_PATH}/mysql.sock -e "

SELECT user_id FROM company.company_candidate_${suffix} WHERE company_id=${company_id} AND user_id>0 GROUP BY company_id, user_id HAVING COUNT(user_id) > 1;"`

do

if [ $user_id != "user_id" ] ; then

${MYSQL_BIN_PATH}/mysql -u${DBUSER} -p${DBPWD} -h ${DBHOSTNAME} -P ${PORT} --socket=${MYSQL_SOCK_PATH}/mysql.sock -e "

DELETE FROM company.company_candidate_${suffix} WHERE company_id=${company_id} and user_id=${user_id} limit 1;"

echo "delete from company_candidate_${suffix} where company_id=${company_id} and user_id=${user_id} limit 1"

fi

done

# fi

fi

done

exit 0

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

您可能感兴趣的文章:在Shell脚本中调用另一个脚本的三种方式讲解

使用shell脚本来给mysql加索引的方法

干掉一堆mysql数据库,仅需这样一个shell脚本(推荐)

linux shell之通过标识测试文件系统属性的方法示例

linux shell中if的各种判断

linux shell之pushd、popd和dirs的使用讲解

linux shell之控制台打印各种颜色字体和背景的实现方法

shell脚本实现监控某个进程意外停止后拉起进程

使用shell脚本每天对MySQL多个数据库自动备份的讲解

Shell中exit和return的区别讲解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值