Mysql 是否将列定义从一个表复制到另一个表?

Mysql 是否将列定义从一个表复制到另一个表?,mysql,ddl,Mysql,Ddl,我想将一列(定义,而不是数据)从一个表复制到另一个表。如果该列在目标表中不存在,则添加该列;如果该列存在,则更好地进行相应修改 试图用谷歌搜索,但一切似乎都是关于复制数据而不是定义,或者关于使用createtable复制整个表。。。比如… 到目前为止,我能找到的是: CREATE TABLE table2 AS SELECT field4, field7 -- only the columns you want FROM table WHERE FALSE;

我想将一列(定义,而不是数据)从一个表复制到另一个表。如果该列在目标表中不存在,则添加该列;如果该列存在,则更好地进行相应修改

试图用谷歌搜索,但一切似乎都是关于复制数据而不是定义,或者关于使用
createtable复制整个表。。。比如…

到目前为止,我能找到的是:

CREATE TABLE table2 AS 
SELECT field4, field7                -- only the columns you want
FROM table 
WHERE FALSE;                 -- and no data
但我需要将列复制到现有表中。所以我试着:

ALTER TABLE table2 AS 
SELECT field4, field7                -- only the columns you want
FROM table 
WHERE FALSE;                 -- and no data
但显然它拒绝工作

有这样的东西吗

ALTER TABLE table1 ADD COLUMN column2 LIKE table2.column5

在MySQL中实现这一点有什么方法吗?

最好的方法是转储表,然后可以使用ALTER命令创建新表

转储表会将查询返回到创建表

如果客户不存在,则创建表(
id int(11)非空自动增量,
customerId varchar(50)不为空,
firstName varchar(30)不为空,
MIDLENAME varchar(30)默认为空,
lastName varchar(30)字符集utf8 COLLATE utf8\u爱沙尼亚\u ci默认为空,
主键(id)
)ENGINE=InnoDB默认字符集=utf8自动增量=4;

使用相同的方法更改现有表(例如
customerinfo


否。
CREATE TABLE
可以通过
SELECT
查询创建,但是
ALTER TABLE
具有不同的语法,不包括
SELECT
查询。
`ALTER TABLE customerinfo ADD COLUMN (
  customerId varchar(50) NOT NULL,
  firstName varchar(30) NOT NULL,
  middleName varchar(30) DEFAULT NULL,
  lastName varchar(30) CHARACTER SET utf8 COLLATE utf8_estonian_ci DEFAULT NULL
)