具有不可更改参数的多INSERT

时间:2015-07-10 13:55:42

标签: postgresql

有没有办法用DB中的一个来插入多个值,这些值是不可变的? 我想过WITH但没有成功:

WITH t as (SELECT date_trunc('hour', NOW())) 
INSERT INTO my_table(ID, TIME) VALUES (1,t),(2,t);

1 个答案:

答案 0 :(得分:3)

不需要CTE,只需使用普通的SELECT作为插入源:

insert into my_table (id, time)
select i, date_trunc('hour', NOW())
from generate_series(1,2) i;

如果你真的想要CTE,你需要在values子句中选择它:

WITH t as (
   SELECT date_trunc('hour', NOW()) hour_t
) 
INSERT INTO my_table(ID, TIME) 
VALUES 
(1, (select hour_t from t)),
(2, (select hour_t from t));