📅  最后修改于: 2023-12-03 15:14:23.522000             🧑  作者: Mango
在实际应用中,经常需要从 CSV 文件转储大量数据到 PostgreSQL 数据库中。PostgreSQL 是一个强大的关系型数据库管理系统,支持 SQL 标准和高级扩展。为了实现这个目标,我们需要实现以下几个步骤:
使用 PostgreSQL,可以使用 SQL DDL (Data Definition Language) 语句来创建表。以下是一个示例,我们将创建一张名为 employee
的表,其中包含三个字段:id
、name
和 salary
。
CREATE TABLE employee (
id INTEGER PRIMARY KEY,
name TEXT,
salary REAL
);
在将 CSV 文件加载到 PostgreSQL 中之前,我们需要创建一个指向 CSV 文件的数据源。这可以通过使用 PostgreSQL fdw
扩展来完成。fdw
扩展可以用于连接其他数据库、NoSQL 数据库和文件系统等。以下是如何创建一个指向 CSV 文件的数据源的示例。
CREATE SERVER csv FOREIGN DATA WRAPPER file_fdw;
CREATE FOREIGN TABLE employee_csv (
id integer,
name text,
salary real
)
SERVER csv
OPTIONS ( filename '/path/to/employee.csv', format 'csv', header 'true', delimiter ',' );
上面的示例中,我们使用 file_fdw
扩展创建了一个名为 csv
的服务器对象,并使用 csv
服务器创建了一个名为 employee_csv
的外部表。我们为外部表指定了CSV 文件的路径、文件格式、列头和分隔符等信息。
我们可以使用标准的 SQL INSERT INTO
语句将 CSV 数据加载到新创建的表中。以下示例演示了如何将 employee_csv
中的数据插入到 employee
表中。
INSERT INTO employee (id, name, salary)
SELECT id, name, salary FROM employee_csv;
在本文中,我们演示了如何使用 PostgreSQL 的 fdw 扩展将 CSV 文件加载到 PostgreSQL 数据库中。我们首先创建了数据库表的架构,然后创建了一个指向 CSV 文件的数据源。最后,我们使用 SQL INSERT INTO
语句将 CSV 数据加载到我们新创建的表中。