php - 如何使用php比较文件中的两个mysql表结构

标签 php mysql

我有两个 mysql 转储文件。

dump1.sql

CREATE TABLE `designs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `active` tinyint(1) NOT NULL,
  `template` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

dump2.sql

CREATE TABLE `designs` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `act` tinyint(1) NOT NULL,
      `temp` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

如何找出dump1和dump2中两个表结构的不同点?

最佳答案

第二个查询选择 table1 的所有 COLUMN_NAME 并通过使用 NOT IN 我们比较两个表的 COLUMN :-

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'your_schema' AND 
      TABLE_NAME = 'table2' AND 
      COLUMN_NAME NOT IN (
         SELECT COLUMN_NAME
         FROM INFORMATION_SCHEMA.COLUMNS 
         WHERE TABLE_SCHEMA = 'your_schema' AND 
               TABLE_NAME = 'table1');

关于php - 如何使用php比较文件中的两个mysql表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33361169/

相关文章:

mysql - 尝试在 HQL 中将 SUM 与 HAVING 一起使用时出现 "expecting CLOSE, found ' =' "异常

php - 中间表的 Eloquent 模型关系

php - Laravel 4 - 创建自定义 session 驱动程序

javascript - CKEditor 文件上传在 Yii2 中不起作用

javascript - 删除 div 内的一行

php - PDO 以 INT 形式返回一个结果,并根据返回结果更新记录

Mysql查询不存在的地方

mysql - 在 Derby DB 中插入触发器之前

PHP 创建类似 phpmyadmin 的复制命令

php - 多个 mysql ORDER BY 用于多维排序/分组