Alfredo,
If you are using MySQL 5.02 or later, here is an information_schema
query that will list table structure _differences_. The idea is to group
the UNION of rows in information_schema.columns for the two tables on
all information_schema.columns columns, then use HAVING to pick only
those rows where COUNT(*) is 1, that is, where any column of one
Information_schema.columns row differs from its joined mate. Edit 'DB1',
'DB2', 'TABLE1' and 'TABLE2' for your db(s) and tables.
SELECT
MIN(TableName) AS TableName,
column_name,
ordinal_position,
column_default,
is_nullable,
data_type,
character_maximum_length,
numeric_precision,
numeric_scale,
character_set_name,
collation_name,
column_type,
column_key,
extra,
privileges,
column_comment
FROM (
SELECT
'TABLE1' as TableName,
column_name,
ordinal_position,
column_default,
is_nullable,
data_type,
character_maximum_length,
numeric_precision,
numeric_scale,
character_set_name,
collation_name,
column_type,
column_key,
extra,
privileges,
column_comment
FROM information_schema.columns AS i1
WHERE table_schema='DB1' AND table_name='TBL1'
UNION ALL
SELECT
'TABLE2' as TableName,
column_name,
ordinal_position,
column_default,
is_nullable,
data_type,
character_maximum_length,
numeric_precision,
numeric_scale,
character_set_name,
collation_name,
column_type,
column_key,
extra,
privileges,
column_comment
FROM information_schema.columns AS i2
WHERE table_schema='DB2' AND table_name='TABLE2'
) AS tmp
GROUP BY column_name
HAVING COUNT(*) = 1
ORDER BY column_name ;
http://www.artfulsoftware.com
PB
-----
Alfredo Cole wrote:
Hi:
I need to compare the structure of two tables (fields, field types, field
lengths, indices, etc.) to determine if they have the same schema, even if
the fields may be in a different order. Is there a command in mysql that will
do this? This will be used to determine if the tables are basically the same,
or if they need to be upgraded based on the table structures of a central
office.
Thank you.
--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.10.16/83 - Release Date: 8/26/2005
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]