- Disable geom trigger
- Copy data from csv
- update geom column
- enable geom trigger
$ psql -U trees -d treedb
treedb=> ALTER TABLE treedata DISABLE TRIGGER geom_update;
treedb=> \COPY treedata FROM '/home/trees/oakland_tree_survey_massaged.csv' DELIMITER ',' CSV HEADER;
treedb=> UPDATE treedata SET geom = ST_SetSRID(ST_MakePoint(lng, lat), 4326);
treedb=> ALTER TABLE treedata ENABLE TRIGGER geom_update;
ALTER TABLE treedata DISABLE TRIGGER geom_update;
\COPY treedata FROM '/home/trees/Alameda_street_trees_clean_min_geom.csv' DELIMITER ',' CSV HEADER;
UPDATE treedata SET geom = ST_SetSRID(ST_MakePoint(lng, lat), 4326);
ALTER TABLE treedata ENABLE TRIGGER geom_update;
DELETE FROM treedata WHERE id_tree >= 141000;
UPDATE treedata SET who = 'City of Oakland Survey 2020' WHERE id_tree >= 70000 AND id_tree <= 140997;
insert into users ( volunteer,nickname,name,email,zipcode,created) values ('sfdpw','sfdpw','San Francisco Public Works','[email protected]','94103','2021-04-19 11:11:11.111111' );
ALTER TABLE treedata ADD COLUMN legal_status VARCHAR;
DROP INDEX treedata_geom_idx; CREATE INDEX treedata_geom_idx ON treedata USING GIST (geom);
CREATE INDEX ON treedata (geom);
\dS
\df+
https://postgresql.r2schools.com/how-to-install-postgis-in-ubuntu/
https://postgis.net/install/ for osx/ubuntu
CREATE EXTENSION postgis;
ALTER TABLE treedata ADD COLUMN geom geometry(Point,4326);
UPDATE treedata SET geom = ST_SetSRID(ST_MakePoint(lng, lat), 4326);
select common, st_astext( ST_Transform( geom, 4326 ) ) from treedata;
select common, st_astext( ST_Transform( geom, 4326 ) ) AS geom from treedata;
CREATE OR REPLACE FUNCTION countCityTrees() RETURNS TRIGGER AS
CREATE FUNCTION public.count_city_trees() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN NEW.count = now(); RETURN NEW; END; $$;
CREATE FUNCTION count_increment() RETURNS TRIGGER AS $$ BEGIN UPDATE cities SET count = count + 1 WHERE treedata = TG_RELID; RETURN NEW; END $$ LANGUAGE 'plpgsql';
CREATE FUNCTION count_decrement() RETURNS TRIGGER AS $$ BEGIN UPDATE cities SET count = count - 1 WHERE treedata = TG_RELID; RETURN NEW; END $$ LANGUAGE 'plpgsql';
CREATE TRIGGER cities_increment_trig AFTER INSERT ON treedata FOR EACH ROW EXECUTE PROCEDURE count_increment(); CREATE TRIGGER cities_decrement_trig AFTER DELETE ON treedata FOR EACH ROW EXECUTE PROCEDURE count_decrement();