有没有办法用DB中的一个来插入多个值,这些值是不可变的? 我想过WITH但没有成功:
WITH t as (SELECT date_trunc('hour', NOW()))
INSERT INTO my_table(ID, TIME) VALUES (1,t),(2,t);
答案 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));