将Mysql列从一个表添加到另一个表

时间:2015-08-13 10:13:38

标签: mysql sql

我有两个MySQL表:一个叫做Audit,另一个叫Audit2。我需要将列名从Audit2复制到Audit。例如,表Audit包含第1,2和3列,Audit2包含第4,5和6列,我需要Audit以包含第1,2,3,4,5和6列。

我尝试了以下方法但没有成功:

ALTER TABLE  `Audit` ADD  (select `COLUMN_NAME` from information_schema.columns
where table_schema = 'BMS' and `TABLE_NAME` = 'Audit2') (select `DATA_TYPE` from information_schema.columns
where table_schema = 'BMS' and `TABLE_NAME` = 'Audit2') NOT NULL

3 个答案:

答案 0 :(得分:1)

你可以通过

来完成
create table new_audit as
select t1.*,t2.* from audit as t1 inner join audit_2 as t2 on 1=0;

表new_audit将包含所有列

答案 1 :(得分:0)

你试过了吗?

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='your_table_name';  

它将返回所需表格中单个列中的所有列名称。

答案 2 :(得分:0)

如果您设置了PHP环境,则可以下载此工具:http://www.mysqldiff.org/downloads.php 它非常棒 - 将比较两个mysql数据库模式并生成将这些结构同步到一起的mysql代码,听起来就像你需要的那样,也是未来的便利。

如果没有。我会做你正在做的事情,但可能只是为了一次性实例和3列而简化它。

ALTER TABLE Audit ADD yourcolumnname VARCHAR(100);

这样的东西