【问题标题】:mysql insert into or select into - copy column from tbl1 into tbl2mysql insert into 或 select into - 将列从 tbl1 复制到 tbl2
【发布时间】:2014-06-16 17:16:33
【问题描述】:

所以我在同一个数据库中有 2 个 MySQL 表,其中包含以下列(所有这些都不是 NULL):

tbl1: (url, urlkey, domain, created, 8 列..)

tbl2: (url, urlkey, canonical)

这两个表现在都有 100,000 行 - 它们对应于相同的 url、urlkey 值(甚至以相同的顺序插入)。

我要做的是: 将域列从 tbl1 复制到 tbl2 中,并将所有关联的域行值从 tbl1 复制。因此,在此之后,tbl2 应该看起来像: (url, urlkey, canonical, domain) 并且每行中的 url、urlkey、域值应该与 tbl1 相同。

我尝试了一些涉及 SELECT INTO 和 INSERT INTO 的操作,但没有一个成功地将域列的行值复制到 tbl2 中。

有人知道如何针对我所处的特殊情况执行此操作吗?请告诉我,谢谢大家

-- 内森

【问题讨论】:

    标签: mysql sql insert-into select-into


    【解决方案1】:

    首先您需要将新列添加到tbl2

    ALTER TABLE tbl2 ADD domain char(100) //or whatever the type is
    

    然后你需要像这样填充它:

    UPDATE tbl2
    JOIN tbl1 ON tbl1.url = tbl2.url AND tbl1.urlkey = tbl2.urlkey
    SET tbl2.DOMAIN = tbl1.DOMAIN
    

    【讨论】:

      【解决方案2】:
      CREATE TABLE temp(SELECT * FROM tbl2);  
      ALTER TABLE tbl2 ADD COLUMN domain char(10);  
      TRUNCATE tbl2;  
      INSERT INTO tbl2 SELECT url,urlkey,domain, temp.canonical FROM tbl1 JOIN temp  
                                            ON tbl1.urlkey = temp.urlkey
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-08
        • 2011-07-12
        • 2014-03-22
        • 2017-11-25
        • 2012-01-23
        • 2023-02-09
        • 2012-03-11
        • 1970-01-01
        相关资源
        最近更新 更多