2

我有一个 PostgreSQL 数据库,并希望根据我拥有的记录 ID 为多条记录插入相同的值。
有没有办法在语句中创建WHERE条件?INSERT例如:

insert into Customers (new-customer) values ('t') where customer_id in (list)
4

2 回答 2

3

要为列表中的每个 id 插入一行,您可以使用unnest()生成一组行:

INSERT INTO customers(customer_id, column1)
SELECT id, 't'
FROM   unnest ('{123,456,789}'::int[]) id;

如果您说错了并且实际上是针对UPDATE现有行:

UPDATE customers
SET    column1 = 't'
WHERE  customer_id = ANY ('{123,456,789}'::int[]);
于 2014-05-10T12:55:28.590 回答
0

是的,您可以执行以下操作:

INSERT INTO customers(customer_id, customer_name)
    select  13524, 'a customer name'
where  13524 = ANY ('{13524,5578,79654,5920}'::BIGINT[])

13524在这里,将添加一个 id: 的客户,因为它的 ID 在列表中:{13524,5578,79654,5920}

我希望你正在寻找什么!

于 2014-05-10T12:53:29.087 回答