2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不受支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2

2.4. 填充表中的行 #

INSERT 语句用于填充表中的行

INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');

请注意,所有数据类型都使用相当明显的输入格式。不像简单数值的常量通常必须用单引号(')括起来,就像示例中那样。 date 类型实际上在它接受的格式方面相当灵活,但对于本教程,我们将坚持这里显示的明确格式。

point 类型需要一个坐标对作为输入,就像这里展示的

INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)');

到目前为止使用的语法要求您记住列的顺序。另一种语法允许您显式列出列

INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
    VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');

如果您愿意,可以按不同顺序列出列,甚至可以省略某些列,例如,如果降水量未知

INSERT INTO weather (date, city, temp_hi, temp_lo)
    VALUES ('1994-11-29', 'Hayward', 54, 37);

许多开发人员认为显式列出列比依赖隐式顺序是更好的风格。

请输入上面显示的所有命令,以便您在后续部分中有一些数据可供使用。

您也可以使用 COPY 命令从平面文本文件中加载大量数据。这通常更快,因为 COPY 命令针对此应用进行了优化,同时比 INSERT 提供了更少的灵活性。例如:

COPY weather FROM '/home/user/weather.txt';

其中源文件的文件名必须可在运行后端进程的机器上找到,而不是客户端,因为后端进程直接读取文件。上面插入到 weather 表中的数据也可以从包含(值由制表符分隔)的文件中插入

San Francisco    46    50    0.25    1994-11-27
San Francisco    43    57    0.0    1994-11-29
Hayward    37    54    \N    1994-11-29

您可以在 COPY 中阅读更多关于 COPY 命令的信息。

提交更正

如果您在文档中看到任何不正确、与您对特定功能的经验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。