欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux环境shell脚本批量从MYSQL源表插入数据到目标表

程序员文章站 2022-03-27 09:45:33
...

  #!/bin/bash

  i=1

  HOSTNAME="x.x.x.x"

  PORT="3306"

  USERNAME="root"

  PASSWORD="111111"

  maxid=17301353

  minid=17301353

  while :

  do

  #echo "$i"

  sleep 0.5

  (( i++ ))

  maxid=`expr $minid`

  minid=`expr $minid - 10000`

  echo $minid,$maxid

  mysql -u $USERNAME -p$PASSWORD -h $HOSTNAME -P $PORT

  use db0825;

  insert into tab1111_bak

  select * from tab1111 where id>$minid and id

  EOF

  if ((i==20))

  then

  break

  fi

  done

  说明:

  1)需从源表找到最大的ID,并赋maxid和minid参数为初始值;

  2)minid在每次循环时减10000,即每次循环10000条数据;

  3)循环次数i ,根据实际情况指定,本例子是20次循环退出,即本例子卖手游账号总共插入目标表19万条数据。