PostgreSQL 教程: INSERT 插入多行

九月 6, 2023

摘要:在本教程中,您将学习如何使用单个 PostgreSQL 的INSERT语句向表中插入多行。

要使用单个INSERT语句将多行插入表中,请使用以下语法:

INSERT INTO table_name (column_list)
VALUES
    (value_list_1),
    (value_list_2),
    ...
    (value_list_n);

在这个语法中:

  • 首先,在INSERT INTO关键字后指定要插入数据的表的名称。
  • 其次,在表名称后面的括号中列出表中所需的列或所有列。
  • 第三,在VALUES关键字后面提供以逗号分隔的行列表。

要插入多行并返回插入的行,请添加RETURNING子句,如下所示:

INSERT INTO table_name (column_list)
VALUES
    (value_list_1),
    (value_list_2),
    ...
    (value_list_n)
RETURNING * | output_expression;

设置样例表

以下语句创建一个新表,名为links

DROP TABLE IF EXISTS links;

CREATE TABLE links (
    id SERIAL PRIMARY KEY,
    url VARCHAR(255) NOT NULL,
    name VARCHAR(255) NOT NULL,
    description VARCHAR(255)
);

插入多行示例

以下语句使用INSERT语句向links表添加三行:

INSERT INTO 
    links (url, name)
VALUES
    ('https://www.google.com','Google'),
    ('https://www.yahoo.com','Yahoo'),
    ('https://www.bing.com','Bing');

PostgreSQL 返回以下消息:

INSERT 0 3

要验证插入,请使用以下语句:

SELECT * FROM links;

输出:

img

插入多行并返回插入的行

以下语句使用INSERT语句向links表中插入两行并返回插入的行:

INSERT INTO 
    links(url,name, description)
VALUES
    ('https://duckduckgo.com/','DuckDuckGo','Privacy & Simplified Search Engine'),
    ('https://swisscows.com/','Swisscows','Privacy safe WEB-search')
RETURNING *;

img

如果您只想返回插入的id列表,您可以在RETURNING子句中指定id列,如下所示:

INSERT INTO 
    links(url,name, description)
VALUES
    ('https://www.searchencrypt.com/','SearchEncrypt','Search Encrypt'),
    ('https://www.startpage.com/','Startpage','The world''s most private search engine')
RETURNING id;

img

概括

  • INSERT语句中指定多个值列表以将多行插入表中。

  • 使用RETURNING子句返回插入的行。