SQL - 插入表中以获取特定的ID列表

Sim*_*imo 0 mysql sql oracle

我有一个Select语句返回主键列表(user_id).

select user_id from myttable
where <some-condition>;
Run Code Online (Sandbox Code Playgroud)

然后我想为前一个Select中返回的每个ID插入一个新行.我可以在一个SQL查询中执行此操作吗?它可以是这样的吗?看起来很像我在这里需要一个循环.

insert into mytable 
values (user_id, value1, value2, value3, value4, value5)
where user_id in 
(select user_id from myttable
    where <some-condition>)
Run Code Online (Sandbox Code Playgroud)

value1, value2, ..., value5对于所有插入物都是相同的,除了user_id.我可以完成"更新"而不是插入,但我需要保留旧行以用于其他目的.

到目前为止,我所做的是我刚刚获得了一个user_id列表,并在Java中,浏览了该列表并逐个插入.

osa*_*oub 5

insert into mytable(user_id,col1,col2) 
select user_id,'static_val1','static_val2' 
from myttable
where <some-condition>
Run Code Online (Sandbox Code Playgroud)