9

I ceated my table (borne) in PostGIS

id_borne serial NOT NULL,
  num_borne character varying,
  shape_borne geometry

I successfully changed the SRID of my table using

select UpdateGeometrySRID('public', 'borne', 'shape_borne', 26191) ;

The old SRID was 0.

The problem is that when I try to add a new element to my table borne I have this message error:

geometry srid (0) does not match column srid (26191)

enter image description here

That is my problem! The SRID is updated but when I try to add a new point, I get this message.

  • 2
    make sure you give your data a SRID that matches the table before trying to insert it. – Ian Turton Jul 9 '14 at 12:53
  • i dont understand , the srid of my data is the srid of my table ! it is the same , no ? – Yahia El Haddad Jul 9 '14 at 13:10
  • 1
    can you show us one of your insert statements? – Ian Turton Jul 9 '14 at 13:20
  • like this : INSERT INTO borne(num_borne, shape_borne) VALUES(1, POINT(25800 , 256000)); – Yahia El Haddad Jul 9 '14 at 13:54
  • 1
    The geometry In your insert statement does not have a srid. That is the cause of the error – Devdatta Tengshe Jul 10 '14 at 1:50
10

What's happening is that the data you are trying to insert does not have an SRID assigned. To assign one, try wrapping the inserted geometry in your insert statement with ST_SetSRID(). E.g.,

INSERT INTO public.borne (num_borne, shape_borne) 
    (SELECT num_borne, ST_SetSRID(shape_borne, 26191)
     FROM public.sometable);

or

INSERT INTO public.borne (num_borne, shape_borne) 
VALUES (1, ST_SetSRID(ST_MakePoint(25800 , 256000), 26191));
  • i dont have some table – Yahia El Haddad Jul 9 '14 at 14:04
  • Updated to include your use case. – MakinFlippyFloppy Jul 9 '14 at 14:18
  • it did not work ! – Yahia El Haddad Jul 9 '14 at 15:21
  • What is the error message? also, try running: select find_srid('public', 'borne', 'shape_borne'); to make sure that the srid is actually set on the field. – MakinFlippyFloppy Jul 9 '14 at 19:45
  • it's ok! it s working with using INSERT INTO public.borne (num_borne, shape_borne) VALUES (1, ST_SetSRID(ST_MakePoint(25800 , 256000), 26191)); it is mandatory to use ST_SetSRID(ST_MakePoint( ... ) for adding in this table ? for my other table (parcelle) it's wortking with a normal request for exmple : INSERT INTO parcelle(num_parcelle, shape) VALUES(1, POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))); – Yahia El Haddad Jul 10 '14 at 10:28
6

If you are typing a geometry's WKT into pgAdmin III, you need to specify the SRID using EWKT syntax, otherwise it defaults to 0.

Type this into the geometry field of pgAdmin III:

SRID=26191;POINT(25800 256000)

Otherwise, @MakinFlippyFloppy has the correct SQL way, using ST_SetSRID.

0

I thin below link can help you, Check out below page ::

http://postgis.org/docs/UpdateGeometrySRID.html

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

  • I already work with this function ! – Yahia El Haddad Jul 9 '14 at 13:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.