Sql 获取一组ID';从一个表中生成一行,并使用它们在不同的表中生成一行

Sql 获取一组ID';从一个表中生成一行,并使用它们在不同的表中生成一行,sql,postgresql,Sql,Postgresql,我有两个表“用户”和“设置”。我正在尝试在“设置”中为“用户”中的每个用户创建新行,以初始化默认设置 INSERT INTO settings (user_id, setting_id, value) VALUES ( (SELECT id FROM users), 16, true ) 这将返回错误 错误:用作表达式的子查询返回多行 SQL状态:21000 试试这个语法 将常量值添加到选择查询选择列表中

我有两个表“用户”和“设置”。我正在尝试在“设置”中为“用户”中的每个用户创建新行,以初始化默认设置

INSERT INTO settings
    (user_id, setting_id, value)
VALUES 
    (
        (SELECT id
        FROM users),
        16,
        true
    )
这将返回错误

错误:用作表达式的子查询返回多行 SQL状态:21000

试试这个语法

常量值添加到
选择
查询选择列表中


使用
插入。选择

INSERT INTO settings (user_id, setting_id, value)
    SELECT id, 16, true
    FROM users;
INSERT INTO settings (user_id, setting_id, value)
    SELECT id, 16, true
    FROM users;