[postgis-users] How to implement a GUID
Mark Cave-Ayland
mark.cave-ayland at ilande.co.uk
Tue Jul 24 04:59:03 PDT 2007
On Tue, 2007-07-24 at 12:49 +0200, Milo van der Linden wrote:
> Hello list!
>
> I have been thinking my head off trying to figure it out and
> documentation won't help me.
>
> Yesterday I recieved the tip to use a GUID as a database wide unique
> key. Well, I think it is the only option I have.
>
> I import a shape file into a temp table.
> >From this temp table is then insert the content into 2 other tables:
> final_attributes and final_geom
>
> Final_attributes should contain all the attribute fields plus a column
> to connect it to final_geom
> Final_geom should contain a column to connect to Final_attributes plus
> the_geom.
>
> Because Final_attributes is a table that also connects to other
> geom_tables; it needs a id that is unique over 3 or even more tables.
>
> If I can generate GUIDs with php, Is that a good option?
> Is there a way to use the geometry column to generate some sort of
> unique ID? I would also like to check if the geometry is unique within
> it's final_geom table!
>
> What datatype should I use to store the GUID?
>
> I cannot figure it out... please lend me a hand
Hi Milo,
Can you not just use a sequence to have a unique key across multiple
tables as suggested by Stephen? For example:
CREATE SEQUENCE seq1;
CREATE TABLE t1 AS (
id int8 default nextval('seq1'),
the_geom geometry
);
CREATE TABLE t2 AS (
id int8 default nextval('seq1'),
the_geom geometry
);
INSERT INTO t1 SELECT the_geom FROM geom_temp_table;
INSERT INTO t2 SELECT the_geom FROM geom_temp_table;
If you then do:
SELECT id FROM t1;
SELECT id FROM t2;
you should find that id is unique across both tables since they share
the same sequence.
Kind regards,
Mark.
--
ILande - Open Source Consultancy
http://www.ilande.co.uk
More information about the postgis-users
mailing list