【发布时间】:2018-07-10 18:01:53
【问题描述】:
我想将一行从一个表复制到另一个表。但在这个过程中,我想改变 id 的值。比如到20。怎么办?
我有这个代码
INSERT INTO work_done
SELECT * FROM work_todo
WHERE id = 10
【问题讨论】:
标签: sql
我想将一行从一个表复制到另一个表。但在这个过程中,我想改变 id 的值。比如到20。怎么办?
我有这个代码
INSERT INTO work_done
SELECT * FROM work_todo
WHERE id = 10
【问题讨论】:
标签: sql
尝试一些像 tis 一样的想法
INSERT INTO work_done
( id
, col2
...
)
SELECT 20
, col2
...
FROM work_todo WHERE id = 10
【讨论】:
10 和 20 值实际上是 numerical 值并存储在数值类型的列中 - 所以它们应该不 在查询中用双引号括起来...
"20" 是 SQL 中的 标识符(例如列名)。我怀疑工作表中有一个名为"20" 的列
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;
【讨论】: