MySQL:将列从数据库 1.TableS 添加到数据库 2.TableS
Posted
技术标签:
【中文标题】MySQL:将列从数据库 1.TableS 添加到数据库 2.TableS【英文标题】:MySQL: Add columns from Database1.TableA to Database2.TableA 【发布时间】:2013-03-26 15:56:40 【问题描述】:在合并前 Web 开发团队的变更时需要一些帮助。他们在“Database1.TableA”中为开发站点创建了四个新列。是否有 SQL 查询可以复制“Database1.TableA”中四个新列的结构和数据进入“Database2.TableA”?
谢谢
【问题讨论】:
复制表结构还是数据? 【参考方案1】:使用CREATE TABLE ... SELECT 语法应该很容易实现。
【讨论】:
我不确定是否会产生我之前遇到的相同问题。因为我在尝试使用 phpMyAdmin 删除 Database2.Table1 并简单地复制/创建 Database1.Table1 时遇到了类似的问题。它不允许我删除 Database2.Table1,因为“外键约束失败”。【参考方案2】:我不知道自动复制结构的方法。数据可以更新
UPDATE new_db.table n
JOIN old_db.table o on o.primary_key_col = n.primary_key_col
SET n.col1=o.col1,n.col2=o.col2,...
【讨论】:
我正在尝试使用 col1 = 'autorelist' 进行测试;但是,我收到错误消息:#1054 - “字段列表”中的未知列“n.autorelist”。这是有道理的,因为“autorelist”以前不存在于新表中。如何克服这个问题? 您必须添加新列 1-st。这只会将数据从一个表更新到另一个表。 列现在存在,但仍无法获取要复制的值。不过,这就足够了。谢谢。以上是关于MySQL:将列从数据库 1.TableS 添加到数据库 2.TableS的主要内容,如果未能解决你的问题,请参考以下文章
mysql insert into 或 select into - 将列从 tbl1 复制到 tbl2