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
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to