[英]Copy column definition from one table to another?
我想将一个列(定义,而不是数据)从一个表复制到另一个表。 如果列在目标表中不存在,则添加该列,或者更好,如果存在,则相应地进行修改。
尝试谷歌,但一切似乎都是关于复制数据而不是定义,或关于使用CREATE TABLE ... LIKE ...
复制整个CREATE TABLE ... LIKE ...
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命令来创建新表。
转储表会返回查询以创建表。
CREATE TABLE IF NOT EXISTS customer ( id int(11) NOT NULL AUTO_INCREMENT, 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, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
使用相同的,以变更现有的表(比方说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
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.