INSERT INTO table [ ( column [, ...] ) ] { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query } [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
INSERT INTO SELECT 可以将 select 的结果集同时插入到另一个指定的表中,大大提高了效率,如下:
INSERT INTO widgets ( map_id, widget_name ) SELECT mt.map_id, 'Bupo' FROM map_tags mt WHERE mt.map_license = '12345'
INSERT INTO blog_sums ( blog_id, date, total_comments) SELECT blog_id, '2016-09-22', count(comment_id) as total_comments_update FROM blog_comments WHERE date = '2016-09-22' GROUP BY blog_id ON CONFLICT (blog_id ,date) DO UPDATE SET total_comments = excluded.total_comments;