利用PHP脚本辅助MySQL数据库管理4-两个库表结构差异比较

<?php
define(‘DATABASE1‘, ‘coffeetest‘);
$dbi1 = new DbMysql;
$dbi1->dbh = ‘mysql://root:[email protected]/‘.DATABASE1;

define(‘DATABASE2‘, ‘sinatest‘);
$dbi2 = new DbMysql;
$dbi2->dbh = ‘mysql://root:[email protected]/‘.DATABASE2;

// db1
$db1 = array();
$map = array();
$dbi1->fetchMap("SHOW TABLES", $map);
$tables = array_keys($map);
for($i=0; $i<count($tables); $i++){
    $map = array();
    $dbi1->fetchMap("DESCRIBE ".$tables[$i], $map);
    $structures = array();
    foreach($map as $k=>$v){
        $structures[] = "$k=$v";
    }
    $db1[$tables[$i]] = $structures;
}

// db2
$db2 = array();
$map = array();
$dbi2->fetchMap("SHOW TABLES", $map);
$tables = array_keys($map);
for($i=0; $i<count($tables); $i++){
    $map = array();
    $dbi2->fetchMap("DESCRIBE ".$tables[$i], $map);
    $structures = array();
    foreach($map as $k=>$v){
        $structures[] = "$k=$v";
    }
    $db2[$tables[$i]] = $structures;
}

// db1 compare db2
echo("***** ".DATABASE1." *****\n");
foreach($db2 as $table=>$structures2){
    $structures1 = $db1[$table];
    if(empty($structures1)) {
        echo(".$table not exist\n");
        continue;
    }
    for($i=0; $i<count($structures2); $i++){
        if(1==1 && !in_array($structures2[$i], $structures1))
            echo $table.".".$structures2[$i]."\n";
    }
}

// db2 compare db1
echo("***** ".DATABASE2." *****\n");
foreach($db1 as $table=>$structures1){
    $structures2 = $db2[$table];
    if(empty($structures2)) {
        echo(DATABASE2.".$table not exist\n");
        continue;
    }
    for($i=0; $i<count($structures1); $i++){
        if(1==0 && !in_array($structures1[$i], $structures2))
            echo $table.".".$structures1[$i]."\n";
    }
}
?>

原文地址:https://www.cnblogs.com/coffee_cn/p/8994343.html

时间: 2024-11-29 08:25:24

利用PHP脚本辅助MySQL数据库管理4-两个库表结构差异比较的相关文章

利用PHP脚本辅助MySQL数据库管理3-删除重复表索引

<?php $dbi = new DbMysql; $dbi->dbh = 'mysql://root:[email protected]/coffeetest'; $map = array(); $dbi->fetchMap("SHOW TABLES", $map); $tables = array_keys($map); for($i=0; $i<count($tables); $i++){ echo($tables[$i]."\n");

利用PHP脚本辅助MySQL数据库管理5-检查异常数据

<?php $dbi = new DbMysql; $dbi->dbh = 'mysql://root:[email protected]/coffeetest'; $map = array(); $dbi->fetchMap("SHOW TABLES", $map); $tables = array_keys($map); // 找出含有cid字段的表 $cid_tables = array(); for($j=0; $j<count($tables); $j

利用PHP脚本辅助MySQL数据库管理1-表结构

<?php $dbi = new DbMysql; $dbi->dbh = 'mysql://root:[email protected]/coffeetest'; $map = array(); $dbi->fetchMap("SHOW TABLES", $map); $tables = array_keys($map); for($i=0; $i<count($tables); $i++){ echo($tables[$i]."\n");

创建MySQL用户 赋予某指定库表的权限 flush privileges才能生效!!!!;

update ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 建议使用GRANT语句进行授权,语句如下: grant all privileges on *.* to [email protected]'%' identified by "root"; --------------------------------------------------- GRANT SELECT,INSERT,UP

创建MySQL用户 赋予某指定库表的权限

摘自: http://renxiangzyq.iteye.com/blog/763837 update ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 建议使用GRANT语句进行授权,语句如下: grant all privileges on *.* to [email protected]'%' identified by "root"; -----------------------------

利用Python脚本备份mysql数据库

近期利用空余时间学习了python的一些基础内容,用来实践,做了一个Mysql备份的脚本,按日备份并打包压缩:python比原来的shell只能运行在linux下面更广泛一些,而且后期扩展也更好. ################################## Functions: 1)按日备份数据库,并将备份文件压缩打包: 2)成功则将备份信息写入日志,失败则发邮件告警给管理员: 3)如果已经备份成功,不再重复备份: 4)稍作改动,可用于WINDOWS备份 ###############

脚本实现mysql周完全备份所有库

自己写了个小脚本,其实就是几条命令而已,而且写的也不太健壮.希望大家多给意见 运行后的结果 vim /etc/crontab

用python脚本导出mysql数据库查询结果到Excel表

最近需要导数据的情况太多,总用跳板机上的navicat工具有点效率低,也觉得挺麻烦的(由于跳板机无法连通外网 所以导出数据文件还得通过sftp传到本机)anyway 还是写个脚本好了.之前写过一个shell脚本做的定时导出任务,现在试试用python写下 主要用到的库有: pymysql -- 连数据库的无需多说os & sys -- 可能回涉及到工作目录或者外部传参xlwt -- 写excel 下面就是代码了,总体还是挺简单的,主要遇到个字符编码的问题,改成utf-8就解决了还有个没解决掉的问

MySQL:比较两个数据表不同部分

简单比较 1.SELECT * FROM t2 WHERE id NOT IN (SELECT id FROM t1); 2.SELECT * FROM t2 WHERE NOT EXISTS(SELECT * FROM t1 WHERE t1.id=t2.id); 3.SELECT t2.* FROM t2 LEFT JOIN t1 ON t2.id=t1.id WHERE t1.id is null; 原文地址:https://www.cnblogs.com/go-wandering/p/8