SHOW一组列输出到逗号分隔的列表

我是一个开发服务器上比较数据库表反对活的服务器,寻找那已被丢弃列名的变化,新的列,列。 我想这样做:

SELECT GROUP_CONCAT(Field) FROM (SHOW COLUMNS ON table_name) GROUP BY Field

什么我之后是一个逗号分隔的列表,我可以再取到实时服务器,并做到:

SHOW COLUMNS FROM table_name WHERE NOT IN ([comma-delimited list from above query])

就如何更好地做到这一点有什么想法 - 无论是通过纠正我在我自己的方法,或者通过其他方法一起? 显然,上述SQL不起作用。

请注意:在服务器是完全独立的,不能相互通信,所以没有直接的比较是可能的。


编辑

感谢您的答案,伙计们! 应用你的答案的问题,这是我最后的SQL来获得的列名:

SELECT CONCAT("'", GROUP_CONCAT(column_name ORDER BY ordinal_position SEPARATOR "', '"), "'") AS columns FROM information_schema.columns WHERE table_schema = 'db_name' AND table_name = 'tbl_name'

这让我看起来像这样的列表:

'id', 'name', 'field1', 'field2'

然后,我可以使用这个查询来比较:

SELECT GROUP_CONCAT(column_name ORDER BY ordinal_position) FROM information_schema.columns WHERE table_schema = 'db_name' AND table_name = 'tbl_name' AND column_name NOT IN ('id', 'name', 'field1', 'field2')

结果是存在于第一数据库,而不是在第二任何列的列表。 完善!

--------------解决方案-------------

看看在INFORMATION_SCHEMA.COLUMNS表

select group_concat(column_name order by ordinal_position)
from information_schema.columns
where table_schema = 'database_name' and table_name = 'table_name'

编辑。 信息模式使您可以查询的元数据。 所以,你甚至可以比较左表之间的字段加盟例子。

编辑。 嗨克里斯。 很高兴你已经解决了。 至于你说你的问题是完全不同的,因为它涉及不同的服务器。 我在同一服务器上添加两个不同的数据库的一个例子。

create database db1;
use db1;
create table table1(
id int not null auto_increment primary key,
name varchar(50),
surname varchar(50),
dob date)
engine = myisam;

create database db2;
create table db2.table2 like db1.table1;
alter table db2.table2 drop column dob;

select i1.column_name from (
select column_name
from information_schema.columns
where table_schema = 'db1' and table_name = 'table1' ) as i1
left join (
select column_name
from information_schema.columns
where table_schema = 'db2' and table_name = 'table2' ) as i2
on i1.column_name = i2.column_name
where i2.column_name is null

和明显的结果是DOB存在于表1,而不是在表2。

希望它可以帮助别人。 问候你们。 :)

您应该使用INFORMATION_SCHEMA

您可以复制information_schema.columns从每个数据库表到一个共享模式,然后运行SQL查询,对它们进行比较。

分类:MySQL的 时间:2012-01-01 人气:0
本文关键词: MySQL中,数据库架构
分享到:

相关文章

  • 无法插入(从XML文件)的所有变量值将需要在mysql中数据库 2014-12-06

    查询适用于某些变量值但不是全部. 当我检查表,只有价值的项目"1杯切碎的洋葱头","4蒜,细chpd","1可以百威啤酒(12盎司)"和"1杯水"插入. 其余未插入. 可以采取什么问题? 我写在PHP5的代码,我在MySQL中使用数据库. 这是我的XML文件中的一项: <?xml version="1.0" encoding="UTF-8"?> <recipeml ve

  • SQL Server的MySQL的转换 - 架构与数据库中的问题 2013-08-01

    所有, 我们正在评估MySQL作为在共享主机环境中的低成本替代品到SQL Server为我们的小客户. 我还在云里雾里如何,我们会迁移一些细节,如表/标量函数,SQL作业等,但我将发布具体在另一个线程. 我这样做,不过,有关于在MySQL数据库与模式的根本问题. 目前,我们的SQL Server实例与每个多个架构的多个数据库. 例如: 数据库(模式...) ==================== Client1Database(DBO,网络) Client2Database(DBO,网络,sc

  • 我可以在MySQL中使用,而不是MongoDB的或CouchDB的EAV数据库模式(开放式架构或无模式)? 2013-08-23

    我只能访问MySQL和我需要建立一个系统来管理内容(主要是博客的帖子)可我只是创建一个名为"内容的单位'与3个字段名为'身份证'一个MySQL表,"关键"和"价值"然后继续像'ID'(AUTO_INCREMENT),'标题'='XXXX','体'='yyyyyyyyyyyyy'及表中添加行等等.....我的意思是问MySQL表的行为像架构少数据库. 将它的工作还是值得的? --------------解决方案------------- 当然,你可以做到这一

  • 记录操作到数据库 - 架构和建议 - MySQL的 2012-01-09

    我在考虑记录所有网站/用户操作到数据库中,并想对此有些意见. 该日志将被用于各种各样的事情,包括节流(登录尝试等)的客服,一般维修等. 这是好吗? 我想这取决于交通量,但会导致这样的连续插入任何问题? (我的FK约束上考虑使用的InnoDB) 如果没有,什么样的架构,你会建议,使其具有足够的灵活性,以支持从注册用户和匿名用户不同类型的操作? 我在想是这样的: CREATE TABLE `logs` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMEN

  • 如何从一个ANT构建在MySQL中建立,SQL Server和Oracle数据库? 2014-06-12

    我如何从头开始创建一个数据库,创建表,并与一些示例数据填充它们,在MySQL中的SQL Server和Oracle使用单个ANT构建? --------------解决方案------------- 我们做蚂蚁 和 mysql什么是这样的: 准备这样的SQL文件: drop database if exists test; create database test character set utf8; use test; create table Account_ ( ...fields )

  • 什么是一个很好的MySQL数据库架构的工具? 2014-06-26

    我开始一个新项目很快,我想尝试使用一些更好的工具在这段时间. 最后一个项目,我写了我所有的数据库创建的SQL用手为MySQL. 我希望有一些很好的工具,有创建,维护和修改数据库架构中的MySQL. 我的预算是出了,我,自己的口袋,那么自由(如啤酒)很可能是最好的. :) --------------解决方案------------- MySQL的工作台:http://dev.mysql.com/workbench/ 它是免费的,非常容易使用. 我通常创建架构图,并将其导出为一个.sql文件php

  • 视觉上映射的MySQL数据库架构 2014-09-17

    我需要直观地了解一个开源的ERP软件(的Dolibarr),对于已经发现了一个基于Java的工具dbschemaviewer它利用Eclipse和全球环境基金的绘制出现有数据库的数据库模式. 我让它做的过程中过夜,但没有结果 我需要一个可以映射现有的数据库架构和视觉显示的连接,并允许我编辑过一次,我研究了它的连接一些其它软件 我目前正在使用的,我已经安装了ERP软件wampserver 2 任何解决方案,想法或软件,我可以用它来映射的架构? 请帮忙, 芮妮 --------------解决方案-

  • 现实世界中的MySQL / Postgres数据库模式的例子和分析工具 2014-12-26

    我做的分析模式演化和真的达不到已经进化出位,并存储在版本控制真实世界的数据库模式. 的mediawiki(http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/maintenance/tables.sql)似乎是一个很好的人选为止. 我认为的Bugzilla,但他们似乎并没有在后备箱.sql文件中的mediawiki. Perl脚本已经被执行,从而构建数据库架构/表 - 而不是只得到一个文件中的mediawiki(tables.sql),

  • 将Visual Studio 2010中部署SQL数据库架构更新? 2012-01-30

    我有,诚然,做我自己很少的搜索,可以随意侮辱和/或骚扰我. 我有两个数据库,我使用,一个用于开发,一个用于生产. 在Visual Studio 2010中,我有一个改变的基础上我是否建设调试或释放连接字符串简单替代. 现在,需要的时候我手动更改数据库模式. 我想过创建脚本,但我不知道是否有更好的办法? 我可以在本地计算机上创建在Visual Studio中一个数据块,迁移这些改变发展SQL,然后,终于,高达迁移到生产,这样的架构版本的发布相匹配? 提前致谢! .NET 4 | Visual St

  • MySQL中的枚举值使用撇号将填充数据库搜索HTML组合框 2012-02-09

    我第一次遇到了麻烦,在它撇号创造了我的MySQL列一个ENUM值,则使用值通过PHP来填充一个HTML组合框,然后使用所述的价值作为选择搜索数据库. 下面是我用它来 ​​创建枚举值(我只显示有问题的价值,而一般会有多个值)的SQL: ALTER TABLE `primary_images` CHANGE `imgClass` `imgClass` ENUM( 'Robin\'s' ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFA

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.589 (s). 10 q(s)