我在Postgres 9.4工作。我有一张看起来像这样的表:
Column │ Type │ Modifiers
─────────────────┼──────────────────────┼───────────────────────
id │ integer │ not null default
total_list_size │ integer │ not null
date │ date │ not null
pct_id │ character varying(3) │
我想将所有值都放在date='2015-09-01'
,并使用日期2015-10-01
创建相同的新条目。
我怎样才能做到最好?
我可以使用SELECT * from mytable WHERE date='2015-09-01'
获取要复制的值列表,但我不确定在此之后要做什么。
答案 0 :(得分:2)
如果列id
是serial
,那么
INSERT INTO mytable (total_list_size, date, pct_id)
SELECT total_list_size, '2015-10-01', pct_id
FROM mytable
WHERE date = '2015-09-01';
否则,如果您希望重复ids
:
INSERT INTO mytable (id, total_list_size, date, pct_id)
SELECT id, total_list_size, '2015-10-01', pct_id
FROM mytable
WHERE date = '2015-09-01';