【问题标题】:Copy data from one table to another and change id [duplicate]将数据从一个表复制到另一个表并更改 id [重复]
【发布时间】:2018-07-10 18:01:53
【问题描述】:

我想将一行从一个表复制到另一个表。但在这个过程中,我想改变 id 的值。比如到20。怎么办?

我有这个代码

INSERT INTO work_done
SELECT * FROM work_todo
WHERE id = 10

【问题讨论】:

    标签: sql


    【解决方案1】:

    尝试一些像 tis 一样的想法

    INSERT INTO work_done
              ( id
              , col2
               ...
              )
         SELECT 20
              , col2
               ...
          FROM work_todo WHERE id = 10
    

    【讨论】:

    • 很可能,1020 值实际上是 numerical 值并存储在数值类型的列中 - 所以它们应该不 在查询中用双引号括起来...
    • "20" 是 SQL 中的 标识符(例如列名)。我怀疑工作表中有一个名为"20" 的列
    • 答案已更新 :)
    • 我刚刚测试了我的查询,效果很好
    • 哦,我在括号中使用了引号.. tx :)
    【解决方案2】:
    select *
     into work_done
     from work_todo
    where id = 10;
    
    update work_done a
       set a.id = 20;
    

     select case id
                when id = 10
                  then id = 20
         into work_done
         from work_todo
        where id = 10;
    

    【讨论】:

      猜你喜欢
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 2012-11-24
      • 2023-03-16
      • 2012-01-07
      相关资源
      最近更新 更多