插入带有硬编码数据的多行,以及来自多结果的一列 select
Insert multiple rows with hardcoded data, and one column from a multi-result select
我有以下两个 table:Users
和 Settings
。
我想要做的是在每个现有用户的设置中添加一行。所以在伪代码中:
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;
这几乎是我想要完成的,除了它从另一个 table 获取所有它的插入值,而不是只有一个(user_id
在我的例子中)与其他 'hard-coded'.
编辑:我正在使用 SQL 和 Oracle 数据库。
使用 select .. insert
并提供 select 列表中的常量:
INSERT INTO "Settings" ("name", "value", "type", type_id, overridable)
select 'date_format', 'dd-MM-yyyy', 'USER', user_id, '1'
from users;
我有以下两个 table:Users
和 Settings
。
我想要做的是在每个现有用户的设置中添加一行。所以在伪代码中:
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;
这几乎是我想要完成的,除了它从另一个 table 获取所有它的插入值,而不是只有一个(user_id
在我的例子中)与其他 'hard-coded'.
编辑:我正在使用 SQL 和 Oracle 数据库。
使用 select .. insert
并提供 select 列表中的常量:
INSERT INTO "Settings" ("name", "value", "type", type_id, overridable)
select 'date_format', 'dd-MM-yyyy', 'USER', user_id, '1'
from users;