12195525Tom 发表于 2020-5-26 10:02

求助各位大佬,Mysql如何用命令复制转移视图。

我写了一个脚本。可以复制数据库中每一个表转移到另一个数据库。可是总是有几个表转移不了。后来通过研发部的前辈我了解到,没办法转移的是视图。请问用什么sql语句可以将视图转移到另一个数据库。或者有什么可以整库复制转移(我试了很多网上的方法都行不通)。另外我们的是mysql数据库docker容器
my.cnf配置如下

default-character-set=utf8


default-character-set=utf8



back_log=500
wait_timeout=1800
max_connections=1000
max_user_connections=800
default-storage-engine= InnoDB
key_buffer_size=384M
innodb_buffer_pool_size=1024M

init-connect='SET NAMES utf8'
character-set-server = utf8
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1
collation-server = utf8_unicode_ci
interactive_timeout=7200
max_allowed_packet = 20M
log_timestamps=SYSTEM





log-bin=/var/lib/mysql/mysql-bin
server-id=123454
binlog-format=ROW


脚本如下
#!/bin/bash
#time=`date +%F`

bak=_baka

read -p "请输入要备份的数据库" name
iname=$name$bak
#dd=`docker exec -i mysql mysql -uroot -proot -e "select table_name from information_schema.tables where table_schema='$name';"|grep -Evi "table_name"`
dd=`docker exec -i mysql mysql -uroot -proot -e "use gdxl;show tables" | grep -v "Tables_in_gdxl"`
docker exec -i mysql mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS $iname"

for i in $dd
do      
      #echo $i
      #echo "$iname"
      

      docker exec -i mysql mysql -uroot -proot -e "CREATE TABLE $iname.$i LIKE $name.$i;"

      docker exec -i mysql mysql -uroot -proot -e "INSERT INTO $iname.$i SELECT * FROM $name.$i;"
      if [ $? -eq 0 ];then
                echo "$i=ok"
      else
                echo "$i=no" >> /root/shuju
      fi

done
求助各位大佬!!!!

12195525Tom 发表于 2020-5-26 10:03

求助大佬教导。同样求助各位给mysql资源资料有关数据库即可。

WBSL 发表于 2020-5-26 10:11

不懂帮顶

梓沐 发表于 2020-5-26 10:22

视图是基于表创建的,你可以分2步,先把所有的表创建完,再去创建视图

致远英才 发表于 2020-5-26 10:25

过来学习了!

12195525Tom 发表于 2020-5-26 10:39

梓沐 发表于 2020-5-26 10:22
视图是基于表创建的,你可以分2步,先把所有的表创建完,再去创建视图

谢谢您的指导,但是我不是学数据库的。我只是写脚本的,懂一些命令和shelli脚本。怎么创建视图我也不懂。表都可以转移到新库但是视图怎末转移过去。

12195525Tom 发表于 2020-5-26 10:52

求助大佬。d=====( ̄▽ ̄*)b

zbr878458173 发表于 2020-5-26 11:20

视图 其实就是一些sql语句的封装 .你没学过数据库的话 感觉不太好理解...你想要mysql资源还是Oracle资源 ?我应该都有存

12195525Tom 发表于 2020-5-26 11:23

zbr878458173 发表于 2020-5-26 11:20
视图 其实就是一些sql语句的封装 .你没学过数据库的话 感觉不太好理解...你想要mysql资源还是Oracle资源...

我要的是mysql的。当然你多给我些我也不介意!(*^_^*)

zbr878458173 发表于 2020-5-26 11:25

12195525Tom 发表于 2020-5-26 11:23
我要的是mysql的。当然你多给我些我也不介意!(*^_^*)
https://pan.baidu.com/s/15ocrWsdcODC8kA1VCkMaXQ
提取码:57vp
第一个 基础里面
页: [1] 2
查看完整版本: 求助各位大佬,Mysql如何用命令复制转移视图。