Mysql:添加新字段时如何同步2个表结构?
我有N个数据库:1个在开发中,N-1个在生产中,超过50个字段 我在开发中添加了新字段。然后手动将新字段添加到生产表中 是否有一种同步结构的方法:例如,如果不存在新字段,则添加新字段?(增量更新的林德?) 如果我删除表并创建,我也会丢失数据 如果我复制旧表,然后尝试插入数据,我将得到一个sql错误,告诉我旧表和新表的列数不同Mysql:添加新字段时如何同步2个表结构?,mysql,Mysql,我有N个数据库:1个在开发中,N-1个在生产中,超过50个字段 我在开发中添加了新字段。然后手动将新字段添加到生产表中 是否有一种同步结构的方法:例如,如果不存在新字段,则添加新字段?(增量更新的林德?) 如果我删除表并创建,我也会丢失数据 如果我复制旧表,然后尝试插入数据,我将得到一个sql错误,告诉我旧表和新表的列数不同 insert into newTable select * from oldTable; // error different number of fields in st
insert into newTable select * from oldTable; // error different number of fields in structure
只需指定要插入的列集以及要插入的列:
insert into newTable (col1,col2,...,colN)
select toCol1, toCol2, ..., toColN from oldTable;
使用命令行工具mysqldiff
mysqldiff -d sql -changes-for=server2 \
--server1=username1:username1@host1 \
--server2=username2:password2@host2 \
your_database.your_table1:your_database.your_table2
此程序将生成SQL命令,以将\u表2的结构更改为类似于\u表1。yes::问题在于我的表是。。80块地在生长@yarek很简单,您可以从元数据中获取列的列表,比如具有特定表的列名的表。您可以更进一步,编写过程来生成查询的冗长部分(如列列表)。