Thread: How to Create Table from CSV

How to Create Table from CSV

From
ray
Date:
I would like to create a table from a CSV file (the first line is
headers which I want to use as column names) saved from Excel.  I have
a new database which I have been able to create tables from a
tutorial.  But I haven’t been able to produce this new table.  The
following are my attempts:

CREATE TABLE Equpment_List_Sheet2 FROM 'Equipment List, reference
r1_Sheet2.csv' WITH DELIMITER ',' NULL '' CSV HEADER;
ERROR:  syntax error at or near "FROM"
LINE 1: CREATE TABLE Equpment_List_Sheet2 FROM 'Equipment List,
refe...

^
********** Error **********
ERROR: syntax error at or near "FROM"
SQL state: 42601
Character: 35
____________
copy TABLE Equpment_List_Sheet2 FROM 'Equipment List, reference
r1_Sheet2.csv' WITH DELIMITER ',' NULL '' CSV HEADER;
ERROR:  syntax error at or near "TABLE"
LINE 1: copy TABLE Equpment_List_Sheet2 FROM 'Equipment List,
refere...
                    ^
********** Error **********
ERROR: syntax error at or near "TABLE"
SQL state: 42601
Character: 6
______________
copy Equpment_List_Sheet2 FROM 'Equipment List, reference
r1_Sheet2.csv' WITH DELIMITER ',' NULL '' CSV HEADER;
ERROR:  relation "equpment_list_sheet2" does not exist
********** Error **********
ERROR: relation "equpment_list_sheet2" does not exist
SQL state: 42P01
_______________

Thanks for any help,
ray

Re: How to Create Table from CSV

From
Vibhor Kumar
Date:
On Mar 7, 2011, at 12:13 AM, ray wrote:

>
> CREATE TABLE Equpment_List_Sheet2 FROM 'Equipment List, reference
> r1_Sheet2.csv' WITH DELIMITER ',' NULL '' CSV HEADER;
> ERROR:  syntax error at or near "FROM"
> LINE 1: CREATE TABLE Equpment_List_Sheet2 FROM 'Equipment List,
> refe...
>
> ^
> ********** Error **********
> ERROR: syntax error at or near "FROM"
> SQL state: 42601
> Character: 35
> ____________
> copy TABLE Equpment_List_Sheet2 FROM 'Equipment List, reference
> r1_Sheet2.csv' WITH DELIMITER ',' NULL '' CSV HEADER;
> ERROR:  syntax error at or near "TABLE"
> LINE 1: copy TABLE Equpment_List_Sheet2 FROM 'Equipment List,
> refere...
>                    ^
> ********** Error **********
> ERROR: syntax error at or near "TABLE"
> SQL state: 42601
> Character: 6



You can't create a table using CSV. However try following:
1. Create structure of table (Parse the column using some script or manually)
2. Import data using COPY Command.

Thanks & Regards,
Vibhor Kumar
EnterpriseDB Corporation
The Enterprise PostgreSQL Company
vibhor.kumar@enterprisedb.com
Blog:http://vibhork.blogspot.com


Re: How to Create Table from CSV

From
Rich Shepard
Date:
On Sun, 6 Mar 2011, ray wrote:

> I would like to create a table from a CSV file (the first line is
> headers which I want to use as column names) saved from Excel.  I have
> a new database which I have been able to create tables from a
> tutorial.  But I haven?t been able to produce this new table.  The
> following are my attempts:

   As mentioned, write the table structure to a file using the postgres DDL.
That is, 'CREATE TABLE <name> (
             column1...
           );'

Then using psql you can '\copy to <tablename> from <filename> with delimiter
as ',' null as '' CSV' (without the quotes and with appropriate delimiter
and null values. The backslash is needed to make it work.

Rich

Re: How to Create Table from CSV

From
Dimitri Fontaine
Date:
ray <ray@aarden.us> writes:
> I would like to create a table from a CSV file (the first line is
> headers which I want to use as column names) saved from Excel.  I have

You have to manually create the table and its columns, as other said.
The tricky part that is hard (or impossible) to automate is deciding
which data type to use for each column.

Once you've done that, actually importing the data is a matter of using
the COPY command or the pgloader tool.

In PostgreSQL 9.1 you will be able to use CREATE FOREIGN TABLE to
achieve that in one step, see:

  CREATE FOREIGN TABLE

  http://developer.postgresql.org/pgdocs/postgres/ddl-foreign-data.html
  http://developer.postgresql.org/pgdocs/postgres/sql-createforeigndatawrapper.html
  http://developer.postgresql.org/pgdocs/postgres/file-fdw.html

Regards,
--
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support

Re: How to Create Table from CSV

From
"ray joseph"
Date:
I appreciate all the information

Thank you,
ray

-----Original Message-----
From: Dimitri Fontaine [mailto:dimitri@2ndQuadrant.fr]
Sent: Sunday, March 06, 2011 3:19 PM
To: ray
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] How to Create Table from CSV

ray <ray@aarden.us> writes:
> I would like to create a table from a CSV file (the first line is
> headers which I want to use as column names) saved from Excel.  I have

You have to manually create the table and its columns, as other said.
The tricky part that is hard (or impossible) to automate is deciding
which data type to use for each column.

Once you've done that, actually importing the data is a matter of using
the COPY command or the pgloader tool.

In PostgreSQL 9.1 you will be able to use CREATE FOREIGN TABLE to
achieve that in one step, see:

  CREATE FOREIGN TABLE

  http://developer.postgresql.org/pgdocs/postgres/ddl-foreign-data.html

http://developer.postgresql.org/pgdocs/postgres/sql-createforeigndatawrapper
.html
  http://developer.postgresql.org/pgdocs/postgres/file-fdw.html

Regards,
--
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support