PostgreSQL 插入 x 次 2 相同的行

PostgreSQL insert x times 2 same rows

我有以下 table:

          user_setting
----+---------+--------------+---------------
 id | user_id | setting_name | setting_value
----+---------+--------------+---------------
  1 |    1    |     color    |     000000
  2 |    1    |     date     |     aammjj
  3 |    2    |     color    |     000000
  4 |    2    |     date     |     aammjj
  5 |    3    |     color    |     000000
  6 |    3    |     date     |     aammjj

您是否有解决方案,可以用 3 INSERT 中的这些值填充 table 以及包含 setting_name 和关联默认值 setting_value 的数组? 我在想:

INSERT INTO user_setting (user_id, setting_name, setting_value)
            ( SELECT 1, params[1], params[2]
              FROM unnest(ARRAY[['color','000000'],['date','aammjj']]) AS params )
INSERT INTO user_setting (user_id, setting_name, setting_value)
            ( SELECT 1, params[1], params[2]
              FROM unnest(ARRAY[['color','000000'],['date','aammjj']]) AS params )
INSERT INTO user_setting (user_id, setting_name, setting_value)
            ( SELECT 3, params[1], params[2]
              FROM unnest(ARRAY[['color','000000'],['date','aammjj']]) AS params )
select user_id, p1, p2
from
    (values (1),(2),(3)) u (user_id)
    cross join
    (values ('color','000000'),('date','aammjj')) as params (p1, p2)
;
 user_id |  p1   |   p2   
---------+-------+--------
       1 | color | 000000
       1 | date  | aammjj
       2 | color | 000000
       2 | date  | aammjj
       3 | color | 000000
       3 | date  | aammjj