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-us...@lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

_______________________________________________
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to