从选择语句插入多个值

时间:2020-08-30 16:03:25

标签: sql postgresql

祝您好运,SQL伙伴们!我正在努力在一个表中插入多个值,两个表都处于不同的架构。

INSERT INTO users.users (created_by, email, passwd) 
VALUES (
  (SELECT 
    customers.created_by,
    customers.email,
    'P455word'
   FROM customers.customers
   WHERE customers.tbl_id = (SELECT MAX(customers.tbl_id) FROM customers.customers)
    )
);

我收到此错误:错误:子查询必须仅返回一列 有什么建议可以解决吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

请勿使用values

INSERT INTO users.users (created_by, email, passwd) 
    SELECT customers.created_by, customers.email, 'P455word'
    FROM customers.customers
    WHERE customers.tbl_id = (SELECT MAX(customers.tbl_id) FROM customers.customers);

假设您打算仅插入一行,则可以考虑:

INSERT INTO users.users (created_by, email, passwd) 
    SELECT c.created_by, c.email, 'P455word'
    FROM c.customers
    ORDER BY c.tbl_id DESC
    LIMIT 1;