Selecting Tables
The "Synch all tables in The database" always synchs all the tables present in the database at any given time. If new tables are added to the database at a later point in time, then selecting this option enables you to synch those tables as well. The "Select all" option here is a GUI option that will check all the tables at the time of building the job. When using this option, tables added after building the job will not be synched should the job be run at a later time. Tables can be selected individually or multiple selection on the GRID are possible with Shift+Click. You can even change the order in which the tables will be synched by using "Move Up.." and "Move Down..." options.
Additionally, you can configure SJA to detect changes only for specific columns. SQLyog detects changes by computing checksums which are calculated on the server side. This checksums calculation will be done on all rows of the table. However you may select/deselect specific columns for the checksum calculation. This should be done only if you can ensure that the columns selected for the calculation will suffice to identify changes between source and target. In particular if you have large BLOBs/TEXTs in a table you may skip comparing those in order to speed up the process if other columns together identify rows uniquely. This improves the time taken to complete the sync process as it reduces the load on the server.
The columns that are selected for checksum comparison are only for detection of UPDATEs to be done. It does NOT mean that ONLY those columns are synced. Data Sync will always sync all columns. This option is a performance improvement option meant only to speed up the comparison process.
To select specific columns (for the checksum's calculations), check the corresponding table and select the columns that needs to be compared on the source and the target to determine the changes.
Clicking on the "SQL Where" button will open up another window where you can specify a valid SQL WHERE clause.
This is very helpful when you don't want to sync archived data.
Note that irrespective of the number of columns that are used to calculate the checksums, SQLyog's Data Sync synchs all columns of the table should the checksum on either side indicate different data for that row (unless a WHERE is used to specify a certain criteria). If a WHERE clause is specified then it syncs all columns of the table that satisfy the WHERE clause.
Using WHERE clause will not delete extra rows in the target.
The other options is:
Set FOREIGN_KEY_CHECKS=0 for Target: If this option is checked, SQLyog issues SET FOREIGN_KEY_CHECK=0 command before the sync on the target server. It allows you sync data without validating FOREIGN KEY integrity.
Note:This feature is available in SQLyog Enterprise and Ultimate.