gpt4 book ai didi

mysql - 将列定义从一个表复制到另一个表?

转载 作者:可可西里 更新时间:2023-11-01 07:44:13 25 4
gpt4 key购买 nike

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

尝试用谷歌搜索,但一切似乎都是关于复制数据而不是定义,或者关于使用 CREATE TABLE ... LIKE ... 复制整个表。

到目前为止 the closest我能找到的是:

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) NOT NULL AUTO_INCREMENT,
customerId varchar(50) 不为空,
firstName varchar(30) 不为空,
中间名 varchar(30) 默认 NULL,
lastName varchar(30) CHARACTER SET utf8 COLLATE utf8_estonian_ci DEFAULT NULL,
主键(id)
) ENGINE=InnoDB 默认字符集=utf8 AUTO_INCREMENT=4 ;

使用相同的方法ALTER一个现有的表,(例如customerinfo)

`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
)

关于mysql - 将列定义从一个表复制到另一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32345531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com