使用硬编码数据插入多行,并从多结果选择中插入一列

时间:2016-11-23 09:44:35

标签: sql oracle select insert-into

我有以下两个表格:UsersSettings 我想要做的是为每个现有用户的设置添加一行。所以在伪代码中:

foreach(NUMBER user_id IN Users){
  INSERT INTO "Settings" SET ("name", "value", "type", type_id, overridable)
                       VALUES ('date_format', 'dd-MM-yyyy', 'USER', user_id, '1');
}

我如何在SQL中执行此操作?

Here at the Using INSERT with the VALUE Clause and a SELECT Subquery part我看到以下内容:

INSERT INTO MyTable (PriKey, Description)
   SELECT ForeignKey, Description
   FROM SomeView;

这几乎是我想要完成的,除了它从其他表中获取所有它的插入值,而不是只有一个(在我的情况下为user_id)与其他表#39 ;硬编码'

编辑:我在SQL数据库中使用SQL。

1 个答案:

答案 0 :(得分:2)

使用select .. insert并在选择列表中提供常量:

INSERT INTO "Settings" ("name", "value", "type", type_id, overridable)
select 'date_format', 'dd-MM-yyyy', 'USER', user_id, '1'
from users;