将多个新行插入表中

时间:2015-03-07 01:56:22

标签: sql database postgresql

假设我有以下表格:电影,主键 movie_id 是从1开始的连续序列号。

movie_id | title | year | rating
1          movie1  1988   9
2          movie2  1970   8
3          moive3  2004   5
4          moive4  1999   7
5          moive5  2015   6

我的目标是制作1990年之前在2020年发行的电影续集,更新的表格看起来像是:

movie_id  |       title       | year | rating
1          movie1               1988    9
2          movie2               1970    8
3          moive3               2004    5
4          moive4               1999    7
5          moive5               2015    6
6          moive1: the sequel   2020    9
7          movie2: the sequel   2020    8

我知道如何获得子查询:1990年之前发布的电影:

SELECT *
FROM movies
WHERE year < 1990; 

但不要继续这样做。

这是我的表架构:

CREATE TABLE movies (
  movie_id INTEGER PRIMARY KEY,
  title VARCHAR NOT NULL,
  year INTEGER NOT NULL,
  rating FLOAT NOT NULL,
  UNIQUE (title,year)) ;

1 个答案:

答案 0 :(得分:1)

使用INSERT...SELECT方法。然后在":the sequel"中连接字符串title,最后,在'2020'中添加year字符串。见下文:

INSERT INTO movies
SELECT 
      title || ': the sequel' AS title,
      '2020' AS year,
      rating 
FROM movies
WHERE year<1990