利用 bash 命令做 SQL 数据修补

如果是把一个 DB 或者一个 table 从一个服务器送到另一个, 那么使用 mysqldump 命令就可以了. 但有的时候, 需要的数据可能只是若干条记录, 就不能用 mysqldump 了. 奇怪的是我 google 了一番居然也没找到很方便的方法. 求人不如求自己吧, 下面是用 bash 命令的解决方法:

mysql <database> -uroot -e “select * from <table> where <condition>…” |tail -n +2 |sed -e ‘s/^/(“/g’ -e ‘s/$/”)/g’ -e ‘s/\t/”,”/g’ |while read values; do echo “insert into <table> values $values”; done

然后把输出的 SQL 在目标服务器上运行即可. 记得把< >里面的变量替换为实际需要的内容. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *