Search code examples
postgresqlsql-insertmultiple-records

How do I insert multiple values into a postgres table at once?


I have a table that I am trying to update multiple values at once. Here is the table schema:

    Column     |  Type   | Modifiers 
---------------+---------+-----------
 user_id       | integer | 
 subservice_id | integer |

I have the user_id and want to insert multiple subservice_id's at once. Is there a syntax in Postgres that will let me do something like this

insert into user_subservices(user_id, subservice_id) values(1, [1, 2, 3]);

How would I do this?


Solution

  • Try:

    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
    

    Demo: http://www.sqlfiddle.com/#!15/9a006/1