我有一个表,我试图一次更新多个值.这是表模式:
Column | Type | Modifiers
---------------+---------+-----------
user_id | integer |
subservice_id | integer |
Run Code Online (Sandbox Code Playgroud)
我有,user_id并希望subservice_id一次插入多个.是否有一种语法Postgres可以让我做这样的事情
insert into user_subservices(user_id, subservice_id) values(1, [1, 2, 3]);
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
Sco*_*owe 149
多值插入语法是:
insert into table values (1,1), (1,2), (1,3), (2,1);
Run Code Online (Sandbox Code Playgroud)
但krokodilko的答案更加流畅.
kro*_*lko 50
尝试:
INSERT INTO user_subservices(user_id, subservice_id)
SELECT 1 id, x
FROM unnest(ARRAY[1,2,3,4,5,6,7,8,22,33]) x
Run Code Online (Sandbox Code Playgroud)
演示:http://www.sqlfiddle.com/#!15/ 9a006/1
yal*_*lie 19
更简洁的krokodilko的答案:
insert into user_subservices(user_id, subservice_id)
values(1, unnest(array[1, 2, 3]));
Run Code Online (Sandbox Code Playgroud)
一个稍微相关的答案,因为我每次尝试记住这个解决方案时都会不断发现这个问题.插入包含多列的多行:
insert into user_subservices (user_id, subservice_id)
select *
from unnest(array[1, 2], array[3, 4]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77519 次 |
| 最近记录: |