Skip to content

Instantly share code, notes, and snippets.

@springmeyer
Created December 26, 2011 17:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save springmeyer/1521679 to your computer and use it in GitHub Desktop.
Save springmeyer/1521679 to your computer and use it in GitHub Desktop.
add unique primary key column and sequence to osm2pgsql tables
ALTER TABLE "planet_osm_line" ADD COLUMN "gid" INTEGER;
CREATE SEQUENCE "planet_osm_line_gid_seq";
UPDATE planet_osm_line SET gid = nextval('"planet_osm_line_gid_seq"');
ALTER TABLE "planet_osm_line"
ALTER COLUMN "gid" SET DEFAULT nextval('"planet_osm_line_gid_seq"');
ALTER TABLE "planet_osm_line"
ALTER COLUMN "gid" SET NOT NULL;
ALTER TABLE "planet_osm_line" ADD UNIQUE ("gid");
ALTER TABLE "planet_osm_line" ADD PRIMARY KEY ("gid");
ALTER TABLE "planet_osm_point" ADD COLUMN "gid" INTEGER;
CREATE SEQUENCE "planet_osm_point_gid_seq";
UPDATE planet_osm_point SET gid = nextval('"planet_osm_point_gid_seq"');
ALTER TABLE "planet_osm_point"
ALTER COLUMN "gid" SET DEFAULT nextval('"planet_osm_point_gid_seq"');
ALTER TABLE "planet_osm_point"
ALTER COLUMN "gid" SET NOT NULL;
ALTER TABLE "planet_osm_point" ADD UNIQUE ("gid");
ALTER TABLE "planet_osm_point" ADD PRIMARY KEY ("gid");
ALTER TABLE "planet_osm_polygon" ADD COLUMN "gid" INTEGER;
CREATE SEQUENCE "planet_osm_polygon_gid_seq";
UPDATE planet_osm_polygon SET gid = nextval('"planet_osm_polygon_gid_seq"');
ALTER TABLE "planet_osm_polygon"
ALTER COLUMN "gid" SET DEFAULT nextval('"planet_osm_polygon_gid_seq"');
ALTER TABLE "planet_osm_polygon"
ALTER COLUMN "gid" SET NOT NULL;
ALTER TABLE "planet_osm_polygon" ADD UNIQUE ("gid");
ALTER TABLE "planet_osm_polygon" ADD PRIMARY KEY ("gid");
@peterbayley
Copy link

Why not:

Alter table planet_osm_line add gid serial unique;

Postgresql will do all the rest automatically

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment