我有一个PostgreSQL数据库,并希望根据我拥有的记录ID为多个记录插入相同的值
有没有办法在WHERE
语句中生成INSERT
条件?例如:
insert into Customers (new-customer) values ('t') where customer_id in (list)
答案 0 :(得分: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[]);
答案 1 :(得分:0)
是的,您可以执行以下操作:
INSERT INTO customers(customer_id, customer_name)
select 13524, 'a customer name'
where 13524 = ANY ('{13524,5578,79654,5920}'::BIGINT[])
此处,系统会添加ID为13524
的客户,因为它的ID在列表中:{13524,5578,79654,5920}
我希望你在找什么!