ID #1068

I get error "Column NAME mismatch for '´database´' table " when running datasync.


A "column NAME mismatch" can be either

  • simply a column name mismatch! Columnnames must be identical as tablenames must. Just like you can't sync a table named my_table in one database with another named mytable in another database, you can't sync a column named my_column in one table with another named mycolumn in another table.
  • or the error can occur because the column order differs between the two tables. The column order must be identical for the sync tool to work! This is because the sync tool internally uses an XML-format. As such it is a text-based format and it is in its nature 'linear' or 'sequential'. You must use the 'reorder columns' functionality available from the Table -menu or -pop-up-menu to create an identical column order before syncing. SQLyog version 5.1 will allow you to use the Structure Sync Tool for this.


Note that

  • There is no similar order-issue with MySQL version 5 objects. They always occur in alphabetical order no matter in what order they were created.
  • Column names are NOT case-sensitive in MySQL - and that applies to UNIX/LINUX as well! So you may sync my_column and MY_COLUMN in table my_table in two different databases - also on *nix. However table names ARE case sensitive on UNIX/LINUX so on these platforms you can't sync my_table and MY_TABLE. On Windows you can!


Also note that Table case-sensitivity with *NIX and non-case-sensitivity with Windows (and sometimes MAC, depending on the filesystem on which it is installed) are DEFAULTs for the systems. The behavior can be changed with the 'lower_case_table_names' system variable on all platforms. 


Tags: -

Related entries:

You can comment this FAQ