9.3 9.4 9.5 9.6 10 11 12 13 14 15 16 17 Current(18)
PostgreSQL中文社区 问题报告 纠错本页面

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';

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

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 命令的信息。