我的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,说明两个表大致相同。 这个例子只是对比了字段类型,长度,还有其他好多因素没对比(比如字段是否允许为空,是否有约束,表是否有触发器等等)。但我们通常意义上的相同比这两项就够了。其实两个表不可能完全相同,一个数据库中不可能出现完全相同的两个表
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,说明两个表大致相同。 这个例子只是对比了字段类型,长度,还有其他好多因素没对比(比如字段是否允许为空,是否有约束,表是否有触发器等等)。但我们通常意义上的相同比这两项就够了。其实两个表不可能完全相同,一个数据库中不可能出现完全相同的两个表
information_schema.`COLUMNS` 表的内容来判断。表中列是否相同。自己试着写一下SQL语句吧。
字段的数据字典是:all_tab_cols ------------------------
对应mysql里面有类似系统表:
information_schema.tables
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 | | | |
| 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)