Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PostgreSQL/PostGIS: shp2pgsql INSERT instead of Creating a new table

Hi I am very new to PostgreSQL/PostGIS and just learned how to convert Shapefiles into SQL file and import it to PostGIS using the shp2pgsql by following this tutorial. What I noticed is that whenever I convert a Shapefile, it generates an SQL file that has a CREATE TABLE statement. Now my question is, is there a way or is it even possible to INSERT a new Shapefile(with new set of layers) into an existing table rather than creating a new one?

I hope I explained it well. Thanks.

like image 472
Mark A. Avatar asked Dec 07 '25 15:12

Mark A.


1 Answers

You can use append option in your command line. Like this:

.\shp2pgsql.exe -c -I -g "geom" fistShpFile.shp
.\shp2pgsql.exe -a  -g "geom"   nextShpFile.shp
.\shp2pgsql.exe -a  -g "geom"   nextShpFile.shp
...
(-d|a|c|p) These are mutually exclusive options:

-d Drops the table, then recreates it and populates it with current shape file data.
-a Appends shape file into current table, must be exactly the same table schema.
-c Creates a new table and populates it, default if you do not specify any options. 
-p Prepare mode, only creates the table.

http://www.bostongis.com/pgsql2shp_shp2pgsql_quickguide.bqg

Or use shp2pgsql -? for other options.

like image 111
Barış Serkan AKIN Avatar answered Dec 09 '25 15:12

Barış Serkan AKIN



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!