From: | Ryan Kelly <rpkelly22(at)gmail(dot)com> |
---|---|
To: | David G Johnston <david(dot)g(dot)johnston(at)gmail(dot)com> |
Cc: | PG-General Mailing List <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: any psql \copy tricks for default-value columns without source data? |
Date: | 2014-05-06 20:38:12 |
Message-ID: | CAHUie27xDT-rpv0h30N9oh5+9n9MOcnsAObU4poRh3k_ow+R6w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Tue, May 05/06/14, 2014 at 01:22:20PM -0700, David G Johnston wrote:
> So, I am trying to import a file into a table and want to assign a sequence
> value to each record as it is imported.
>
> I know that I can pre-process the input file and simply add the needed data
> but I am curious if maybe there is some trick to having defaults populate
> for missing columns WITHOUT explicitly specifying each and every column that
> is present?
There isn't really any way to get around specifying the columns. I wrote
a tool to help import files into the database, you could probably make
use of it:
https://github.com/f0rk/csv2table
Assuming the table already exists and your csv has columns with the same
names as the columns in your table:
csv2table --file /path/to/your/file.csv --no-create --copy --backslash | psql
If the table doesn't exist, you could do:
csv2table --file /path/to/your/file.csv --copy --backslash | vipe | psql
And edit the create statement to add a SERIAL column (the copy command
will specify all of the columns in the file for you).
It's a 95% solution I use to get delimited files into the database. It's
not perfect but it works most of the time. If you have any issues or
feature requests feel free to open an issue on github.
-Ryan Kelly
On Tue, May 6, 2014 at 4:22 PM, David G Johnston
<david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
> So, I am trying to import a file into a table and want to assign a sequence
> value to each record as it is imported.
>
> I know that I can pre-process the input file and simply add the needed data
> but I am curious if maybe there is some trick to having defaults populate
> for missing columns WITHOUT explicitly specifying each and every column that
> is present?
>
> Thanks!
>
> David J.
>
>
>
>
> --
> View this message in context: http://postgresql.1045698.n5.nabble.com/any-psql-copy-tricks-for-default-value-columns-without-source-data-tp5802795.html
> Sent from the PostgreSQL - general mailing list archive at Nabble.com.
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
From | Date | Subject | |
---|---|---|---|
Next Message | John R Pierce | 2014-05-06 20:47:19 | Re: any psql \copy tricks for default-value columns without source data? |
Previous Message | David G Johnston | 2014-05-06 20:22:20 | any psql \copy tricks for default-value columns without source data? |