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
