需要用java编程来比较2个库之间的表数目 是否相同。
如果不同 需要指出各自对方没有的表另外还要比较相同的表的表结构是否相同,如字段名 字段大小 等是否完全一致。
mysql有一个库是专门记载这个的 问该如何做这个小工程

解决方案 »

  1.   

    如果是5及以上,可以直接用系统表information_schema.tables
      

  2.   

    我的mysql是5.0以上的。请问有没有什么简便的方法来判读 (写代码实现)下面是oracle的方法 ,简洁明了
    1、先确定表结构是否相同
    这个查看通过数据字典就可以实现
    oracle中表的数据字典是:all_tables
    字段的数据字典是:all_tab_colsselect count(*) from
    (select column_name,data_type,data_length
    from all_tab_cols
    where table_name = 'tab1'
    minus
    select column_name,data_type,data_length
    from all_tab_cols
    where table_name = 'tab2');
    如果结果是0,则说明两个表结构相同2、对比记录是否完全一致
    select count(*) from
    (select * from tab1
    minus
    select * from tab2);如果结果是0,说明两个表大致相同。    这个例子只是对比了字段类型,长度,还有其他好多因素没对比(比如字段是否允许为空,是否有约束,表是否有触发器等等)。但我们通常意义上的相同比这两项就够了。其实两个表不可能完全相同,一个数据库中不可能出现完全相同的两个表 
      

  3.   

    MYSQL不是ORACLE,功能没有这么强大,minus写SQL语句,LEFT JOIN+RIGHT JOIN 
      

  4.   

    一样,你可以通过
    information_schema.`COLUMNS` 表的内容来判断。表中列是否相同。自己试着写一下SQL语句吧。
      

  5.   

    oracle中表的数据字典是:all_tables 
    字段的数据字典是:all_tab_cols ------------------------
    对应mysql里面有类似系统表:
    information_schema.tables
    information_schema.columns你参考下吧
      

  6.   

    mysql> desc information_schema.tables;
    +-----------------+---------------------+------+-----+---------+-------+
    | Field           | Type                | Null | Key | Default | Extra |
    +-----------------+---------------------+------+-----+---------+-------+
    | TABLE_CATALOG   | varchar(512)        | YES  |     | NULL    |       |
    | TABLE_SCHEMA    | varchar(64)         | NO   |     |         |       |
    | TABLE_NAME      | varchar(64)         | NO   |     |         |       |
    | TABLE_TYPE      | varchar(64)         | NO   |     |         |       |
    | ENGINE          | varchar(64)         | YES  |     | NULL    |       |
    | VERSION         | bigint(21) unsigned | YES  |     | NULL    |       |
    | ROW_FORMAT      | varchar(10)         | YES  |     | NULL    |       |
    | TABLE_ROWS      | bigint(21) unsigned | YES  |     | NULL    |       |
    | AVG_ROW_LENGTH  | bigint(21) unsigned | YES  |     | NULL    |       |
    | DATA_LENGTH     | bigint(21) unsigned | YES  |     | NULL    |       |
    | MAX_DATA_LENGTH | bigint(21) unsigned | YES  |     | NULL    |       |
    | INDEX_LENGTH    | bigint(21) unsigned | YES  |     | NULL    |       |
    | DATA_FREE       | bigint(21) unsigned | YES  |     | NULL    |       |
    | AUTO_INCREMENT  | bigint(21) unsigned | YES  |     | NULL    |       |
    | CREATE_TIME     | datetime            | YES  |     | NULL    |       |
    | UPDATE_TIME     | datetime            | YES  |     | NULL    |       |
    | CHECK_TIME      | datetime            | YES  |     | NULL    |       |
    | TABLE_COLLATION | varchar(32)         | YES  |     | NULL    |       |
    | CHECKSUM        | bigint(21) unsigned | YES  |     | NULL    |       |
    | CREATE_OPTIONS  | varchar(255)        | YES  |     | NULL    |       |
    | TABLE_COMMENT   | varchar(80)         | NO   |     |         |       |
    +-----------------+---------------------+------+-----+---------+-------+
    21 rows in set (0.08 sec)mysql> desc information_schema.columns;
    +--------------------------+---------------------+------+-----+---------+-------+
    | Field                    | Type                | Null | Key | Default | Extra |
    +--------------------------+---------------------+------+-----+---------+-------+
    | TABLE_CATALOG            | varchar(512)        | YES  |     | NULL    |       |
    | TABLE_SCHEMA             | varchar(64)         | NO   |     |         |       |
    | TABLE_NAME               | varchar(64)         | NO   |     |         |       |
    | COLUMN_NAME              | varchar(64)         | NO   |     |         |       |
    | ORDINAL_POSITION         | bigint(21) unsigned | NO   |     | 0       |       |
    | COLUMN_DEFAULT           | longtext            | YES  |     | NULL    |       |
    | IS_NULLABLE              | varchar(3)          | NO   |     |         |       |
    | DATA_TYPE                | varchar(64)         | NO   |     |         |       |
    | CHARACTER_MAXIMUM_LENGTH | bigint(21) unsigned | YES  |     | NULL    |       |
    | CHARACTER_OCTET_LENGTH   | bigint(21) unsigned | YES  |     | NULL    |       |
    | NUMERIC_PRECISION        | bigint(21) unsigned | YES  |     | NULL    |       |
    | NUMERIC_SCALE            | bigint(21) unsigned | YES  |     | NULL    |       |
    | CHARACTER_SET_NAME       | varchar(32)         | YES  |     | NULL    |       |
    | COLLATION_NAME           | varchar(32)         | YES  |     | NULL    |       |
    | COLUMN_TYPE              | longtext            | NO   |     | NULL    |       |
    | COLUMN_KEY               | varchar(3)          | NO   |     |         |       |
    | EXTRA                    | varchar(27)         | NO   |     |         |       |
    | PRIVILEGES               | varchar(80)         | NO   |     |         |       |
    | COLUMN_COMMENT           | varchar(255)        | NO   |     |         |       |
    +--------------------------+---------------------+------+-----+---------+-------+
    19 rows in set (0.01 sec)