[Qgis-developer] [postgis-users] RE : QGis 2.0 Copy/Paste from shapefile to Postgis issue if the primary key is a string

Denis Rouzaud denis.rouzaud at gmail.com
Tue Feb 4 01:50:59 PST 2014


Here is the reply concerning copy/pase with primary keys on postgis.

Jürgen, can you comment this?

Thanks,

Denis


On 03. 02. 14 09:40, F T wrote:
> Hi,
>
> QGis should not deal with Postgre SQl explicit primary keys.
> It is postgreSQL to manage the explicit primary key.
> With Qgis 1.7.4, copy/paste with explicit primary keys where ok
>
>
> If QGis 1.7.4 sends a unique primary key, PostgreSQL accept it, if the explicit key is not unique, it reject it.
>
> QGis 2.0 brings a regression, it put all the primary keys to null...
> Denis 's workaround to add a serial to the table and a constraint (unique not null) to the explicit primary key is not a solution for us.
>
> We have a lots of tables that are used not only with QGis...
> Changing all the tables just because QGis 2.0  needs a non-standard feature is a pain.
> And QGis 1.7.4 was doing this copy/paste job fine.
>
>
> However, this is a QGis 2.0 pb and not a postgis pb.
> I will continue on the QGis List
>
> Thanks
>
> Fabrice
>
> ------------------------------
>
> Hi,
>
> QGIS prevent to overwrite the primary key field when it copies/pastes,
> this is why it leaves the field empty.
> One way would be to add the constraint after the copy/paste if it's for
> a single shot.
> Otherwise, just add a unique constraint on f1 and add a serial as
> primary key.
>
> Cheers,
>
> Denis
>
> On 31. 01. 14 15:02, F T wrote:
> >/  Hello
> />/
> />/  We have a pb with copy/paste from a shapefile to postgis if the
> />/  primary key is a string.
> />/  The primary key is left NULL and no commit is possible.
> />/
> />/  To reproduce the pb :
> />/
> />/  Create *table1 *with a string primary key
> />/
> />/      CREATE TABLE table1
> />/      (
> />/        f1 character varying(10) NOT NULL,
> />/        f2 character varying(10),
> />/        geom geometry,
> />/      *CONSTRAINT t1_pkey PRIMARY KEY (f1),*
> />/      CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 2),
> />/      CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) =
> />/      'POINT'::text),
> />/      CONSTRAINT enforce_srid_geom CHECK (st_srid(geom) = 2154)
> />/      )
> />/
> />/
> />/  *table2* is the same as table 1 but it has no primary key
> />/
> />/      CREATE TABLE table2
> />/      (
> />/        f1 character varying(10) NOT NULL,
> />/        f2 character varying(10),
> />/        geom geometry,
> />/        CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 2),
> />/        CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) =
> />/      'POINT'::text),
> />/        CONSTRAINT enforce_srid_geom CHECK (st_srid(geom) = 2154)
> />/      )
> />/
> />/
> />/  *shapes.shp* is a shapefile that contains the points I would like to
> />/  copy/paste in the Postgis tables
> />/  (see attached zip file)
> />/
> />/  1) if I copy/paste the points from shapes.shp to table1, the key field
> />/  stays NULL and the commit is impossible.
> />/  2) if I copy/paste the points from shapes.shp to table2, everything is ok.
> />/
> />/  Have you ever seen this bug?
> />/
> />/  Thanks
> />/
> />/  Fabrice/
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20140204/549d2b03/attachment-0001.html>


More information about the Qgis-developer mailing list