我有一个PostgreSQL数据库,想根据我拥有的记录ID为多个记录插入相同的值。有没有办法在INSERT语句中设置WHERE条件?例如:
INSERT
WHERE
insert into Customers (new-customer) values ('t') where customer_id in (list)
字符串
vlurs2pr1#
是的,你可以这样做:
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}我希望你正在寻找什么!
13524
{13524,5578,79654,5920}
ej83mcc02#
要在没有SELECT的情况下执行此操作,您可以在unnest()之后使用ARRAY[]:
SELECT
unnest()
ARRAY[]
INSERT INTO customers (customer_id, column1) VALUES (unnest(ARRAY[123,456,789]),'t');
eyh26e7m3#
要为列表中的每个id插入一行,可以使用unnest()生成一组行:
INSERT INTO customers(customer_id, column1) SELECT id, 't' FROM unnest ('{123,456,789}'::int[]) id;
字符串如果你说错了,实际上是想UPDATE现有的行:
UPDATE
UPDATE customers SET column1 = 't' WHERE customer_id = ANY ('{123,456,789}'::int[]);
型
3条答案
按热度按时间vlurs2pr1#
是的,你可以这样做:
字符串
这里,将添加ID为
13524
的客户,因为它的ID在列表中:{13524,5578,79654,5920}
我希望你正在寻找什么!
ej83mcc02#
要在没有
SELECT
的情况下执行此操作,您可以在unnest()
之后使用ARRAY[]
:字符串
eyh26e7m3#
要为列表中的每个id插入一行,可以使用
unnest()
生成一组行:字符串
如果你说错了,实际上是想
UPDATE
现有的行:型