Více

Jak nastavit / aktualizovat sloupce pomocí spouštěče?

Jak nastavit / aktualizovat sloupce pomocí spouštěče?


Chci nastavit / aktualizovat atributy (alignment_horizontal, alignment_vertical) geometrie (bodu) PostGIS pomocí spouště.

CREATE TABLE point (gid serial NOT NULL, geom geometry (point, SRID), label varchar (255), x_cord double precision, y_cord double precision, alignment_horizontal varchar (255), alignment_vertical varchar (255), CONSTRAINT point_pkey PRIMARY KEY (gid) ); VYTVOŘIT SPUŠTĚNÍ label_alignment_trigger PŘED VLOŽENÍM ALEBO AKTUALIZACÍ V BODU PRO KAŽDÝ ŘADU PROVÁDĚCÍ POSTUP label_alignment_triggerfn ();

Existuje nějaký způsob, jak nastavit / aktualizovat dva sloupce v jedné spouštěcí funkci?

VYTVOŘIT NEBO VYMĚNIT FUNKCI label_alignment_triggerfn () RETURNS trigger AS $ body $ BEGIN NEW.alignment_horizontal: = PŘÍPAD KDY stupně (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <22 Střed 'WHEN stupňů (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <112,5 PAK' vlevo 'WHEN stupňů (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord) , NEW.y_cord), SRID))) <202,5 ​​PAK 'Střed' KDY stupně (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <292,5 POTOM 'Správně' KDY stupně (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID)))> = 292,5 POTOM 'KONEC'; NEW.alignment_vertical: = PŘÍPAD WHEN stupňů (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <22,5 PAK 'dolní' WHEN stupňů (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint) (NEW.x_cord, NEW.y_cord), SRID))) <112,5 POTOM 'Půl' KDY stupně (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <202,5 ​​POTEN ' Začátek 'WHEN stupňů (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <292,5 POTOM' Půl 'WHEN stupňů (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord) , NEW.y_cord), SRID)))> = 292,5 POTOM KONEC 'Bottom'; NÁVRAT NOVINKA; KONEC; $ body $ JAZYK plpgsql;

Upravit: Upravena funkce spouštění.


měli byste odkazovat na všechna pole jako NEW.field_name

např .:

KDY stupeň (ST_Azimuth (NEW.geom, ST_Point (NEW.x_cord, NEW.y_cord))) <22,5 PAK

Podívejte se na video: Jak jednoduše aktualizovat systém Android