代码之家  ›  专栏  ›  技术社区  ›  yarek

mysql:新增字段时如何同步2个表结构?

  •  1
  • yarek  · 技术社区  · 6 年前

    我有n个数据库:1个在开发中,n-1个在生产中,有50个字段。

    我在开发中添加了新字段。然后,我手动将新字段添加到生产表中。

    有没有一种方法可以同步分析这些结构:比如如果这些结构不存在,就添加新字段?(增量更新的lind?) 如果我删除表并创建,我也将丢失数据。

    如果复制旧表并尝试插入数据,则会出现一个SQL错误,告诉我旧表和新表的列数不同

    insert into newTable select * from oldTable; // error different number of fields in structure
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   olegsv    6 年前

    使用命令行工具mysqldiff。

    mysqldiff -d sql -changes-for=server2 \
    --server1=username1:username1@host1 \
    --server2=username2:password2@host2 \
    your_database.your_table1:your_database.your_table2 
    

    此程序将生成SQL命令以更改 You-TabLe2 类似于 Youl表1 .

        2
  •  0
  •   Michał Turczyn    6 年前

    只需指定要插入的列集以及要插入的列:

    insert into newTable (col1,col2,...,colN)
    select toCol1, toCol2, ..., toColN from oldTable;