You can replicate a table from the source to the replica such that the source and replica copies of the table have differing numbers of columns, subject to the following conditions:
- Columns common to both versions of the table must be defined in the same order on the source and the replica. - (This is true even if both tables have the same number of columns.) 
- Columns common to both versions of the table must be defined before any additional columns. - This means that executing an - ALTER TABLEstatement on the replica where a new column is inserted into the table within the range of columns common to both tables causes replication to fail, as shown in the following example:- Suppose that a table - t, existing on the source and the replica, is defined by the following- CREATE TABLEstatement:- CREATE TABLE t ( c1 INT, c2 INT, c3 INT );- Suppose that the - ALTER TABLEstatement shown here is executed on the replica:- ALTER TABLE t ADD COLUMN cnew1 INT AFTER c3;- The previous - ALTER TABLEis permitted on the replica because the columns- c1,- c2, and- c3that are common to both versions of table- tremain grouped together in both versions of the table, before any columns that differ.- However, the following - ALTER TABLEstatement cannot be executed on the replica without causing replication to break:- ALTER TABLE t ADD COLUMN cnew2 INT AFTER c2;- Replication fails after execution on the replica of the - ALTER TABLEstatement just shown, because the new column- cnew2comes between columns common to both versions of- t.
- Each “extra” column in the version of the table having more columns must have a default value. - A column's default value is determined by a number of factors, including its type, whether it is defined with a - DEFAULToption, whether it is declared as- NULL, and the server SQL mode in effect at the time of its creation; for more information, see Data Type Default Values).
In addition, when the replica's copy of the table has more columns than the source's copy, each column common to the tables must use the same data type in both tables.
Examples. The following examples illustrate some valid and invalid table definitions:
More columns on the source. The following table definitions are valid and replicate correctly:
source> CREATE TABLE t1 (c1 INT, c2 INT, c3 INT);
replica>  CREATE TABLE t1 (c1 INT, c2 INT);The following table definitions would raise an error because the definitions of the columns common to both versions of the table are in a different order on the replica than they are on the source:
source> CREATE TABLE t1 (c1 INT, c2 INT, c3 INT);
replica>  CREATE TABLE t1 (c2 INT, c1 INT);The following table definitions would also raise an error because the definition of the extra column on the source appears before the definitions of the columns common to both versions of the table:
source> CREATE TABLE t1 (c3 INT, c1 INT, c2 INT);
replica>  CREATE TABLE t1 (c1 INT, c2 INT);More columns on the replica. The following table definitions are valid and replicate correctly:
source> CREATE TABLE t1 (c1 INT, c2 INT);
replica>  CREATE TABLE t1 (c1 INT, c2 INT, c3 INT);The following definitions raise an error because the columns common to both versions of the table are not defined in the same order on both the source and the replica:
source> CREATE TABLE t1 (c1 INT, c2 INT);
replica>  CREATE TABLE t1 (c2 INT, c1 INT, c3 INT);The following table definitions also raise an error because the definition for the extra column in the replica's version of the table appears before the definitions for the columns which are common to both versions of the table:
source> CREATE TABLE t1 (c1 INT, c2 INT);
replica>  CREATE TABLE t1 (c3 INT, c1 INT, c2 INT);
          The following table definitions fail because the replica's
          version of the table has additional columns compared to the
          source's version, and the two versions of the table use
          different data types for the common column
          c2:
        
source> CREATE TABLE t1 (c1 INT, c2 BIGINT);
replica>  CREATE TABLE t1 (c1 INT, c2 INT, c3 INT);