将数据从一个表复制到另一个表并更改 id [重复]

Posted

技术标签:

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

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

我有这个代码

INSERT INTO work_done
SELECT * FROM work_todo
WHERE id = 10

【问题讨论】:

【参考方案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;

【讨论】:

以上是关于将数据从一个表复制到另一个表并更改 id [重复]的主要内容,如果未能解决你的问题,请参考以下文章

创建触发器以将数据从一个表获取到另一个表并生成时间戳

将数据从一个表更新到另一个表并在新的 ms 访问 .net 时插入

Laravel 将数据从一个表移动到另一个表并删除数据来自的列?

如何使用可重复对象中的嵌套必填字段将数据从一个表复制到另一个表

将数据从一个表复制到另一个表

如何将数据从一个表移动到另一个表并更新外键 (T-SQL 2008)