我需要将数据从一个数据库复制到我自己的数据库中,因为我想将它作为每日cronjob运行,所以我更喜欢将其用于bash。我还需要将值存储在变量中,以便对值执行各种检查/验证。这是我走到这一步:使用bash将数据从一个数据库复制到另一个数据库
echo "SELECT * FROM table WHERE value='ABC' AND value2 IS NULL ORDER BY time" | mysql -u user -h ip db -p | sed 's/\t/,/g' | awk -F, '{print $3,$4,$5,$7 }' > Output
cat Output | while read line
do
Value1=$(awk '{print "",$1}')
Value2=$(awk '{print "",$2}')
Value3=$(awk '{print "",$3}')
Value4=$(awk '{print "",$4}')
echo "INSERT INTO db (value1,value2,value3,value4,value5) VALUES($Value1,$Value2,'$Value3',$Value4,'n')" | mysql -u rb db -p
done
我得到我从数据库中需要并将其存储在由空格隔开一个新文件中的数据。然后我逐行读取文件并将值存储在变量中,最后我运行带有正确变量的插入查询。
我认为存储值时出现问题,但我无法真正弄清楚什么地方出了问题。
使用mysqlhotcopy的或pg_dump在 – MattSmith 2010-09-29 07:27:07