【问题标题】:Copy MySQL columns from one table to another将 MySQL 列从一个表复制到另一个表
【发布时间】:2012-08-12 22:09:44
【问题描述】:

我想在 phpmyadmin 中将许多行从一个表复制到另一个表。我从中复制的表是profile 表。我要复制到的表user 已经存在,但列不存在。我正在 phpmyadmin 的 SQL 选项卡中尝试以下命令。

INSERT INTO user 
   (profileImage, 
   skypeName, 
   facebookProfile, 
   twitterProfile, 
   reputation, 
   genderPreference, 
   agePreference, 
   fluentLanguage, 
   desiredLanguage) 

(SELECT profileImage, skypeName, facebookProfile, twitterProfile, reputation, genderPreference, agePreference, fluentLanguage, desiredLanguage FROM profile)

出于某种原因,这对我来说不起作用。我收到一个错误:

#1054 - Unknown column 'profileImage' in 'field list'

profileImage 存在于profile 表中,即它是我的一个字段的名称

有谁知道可能是什么问题?

【问题讨论】:

  • 您是否尝试过在您的表前加上您的数据库名称? INSERT INTO db.tblSELECT FROM db2.tbl ?
  • proileImage 拼写错误,可能是这个原因吗?
  • 是的,我有,也没有成功。
  • @RickKuipers 道歉,我打错了 - 这不是问题,现在编辑
  • 我想你自己回答了这个问题:表存在,但列不存在。手动添加列并再次运行查询。

标签: mysql phpmyadmin


【解决方案1】:

如果错误是 #1054 - Unknown column 'proileImage' in 'field list',那么简单地说,该列存在于您的个人资料或用户表中的任何一个(或两者)中。

只需运行查询的选择部分,即。 SELECT profileImage, skypeName, facebookProfile, twitterProfile, reputation, genderPreference, agePreference, fluentLanguage, desiredLanguage FROM profile

这行得通吗?

如果是,您确定profileImage 存在于用户表中吗?

【讨论】:

  • 运行查询时,我得到MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0003 sec )profileImage 不存在于 user 表中,我认为我的 SQL 查询会在从 profile 表中复制这些列时创建这些列?
  • 啊不,一点也不。您必须先创建这些列。
  • 哦,对了,也许我对 MySQL 的期望太高了!因此,如果我想将表 X 中的 100 列复制到表 Y,我必须先在表 Y 中创建所有这些列,然后才能从表 X 中的这些列中复制数据?
  • 是的。我不认为您可以在 MySQL 本身中以编程方式执行此操作(但这可能值得提出一个新问题),但您当然可以使用 php 执行此操作。
【解决方案2】:

您可以在 phpmyadmin 中将表 1 的结构复制到表 2,然后运行查询将某些行从表 1 复制到表 2。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 2012-07-21
    • 2012-06-09
    • 2014-07-03
    相关资源
    最近更新 更多