Vairāk

Kā iestatīt / atjaunināt kolonnas, izmantojot trigeri?

Kā iestatīt / atjaunināt kolonnas, izmantojot trigeri?


Es vēlos iestatīt / atjaunināt PostGIS ģeometrijas (punkta) atribūtus (alignment_horizontal, alignment_vertical), izmantojot trigeri.

CREATE TABLE point (gid serial NOT NULL, geom geometry (point, SRID), label varchar (255), x_cord double precizitāte, y_cord double precizitāte, alignment_horizontal varchar (255), alignment_vertical varchar (255), CONTRRAINT point_pkey PRIMARY KEY (gid) ); CREATE TRIGGER label_alignment_trigger PIRMS PIEVIENOŠANAS VAI ATJAUNINĀT PUNKTU KATRAM RINDAM IZPILDES PROCEDŪRA label_alignment_triggerfn ();

Vai ir kāds veids, kā iestatīt / atjaunināt divas kolonnas vienā aktivizēšanas funkcijā?

Izveidot vai nomainīt FUNCTION label_alignment_triggerfn () RETURNS aktivizētājs kā $ body $ BEGIN NEW. Centrs 'WHEN grādi (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <112,5 TAD' Kreisais 'WHEN grādi (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord) , NEW.y_cord), SRID))) <202,5 ​​TAD 'Centrs' KAD grādi (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <292,5 TAD 'Pareizi' KAD grādi (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID)))> = 292,5 TAD 'Centrs' BEIGT; NEW.alignment_vertical: = LIETAS KAD grādi (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <22,5 TAD 'Bottom' KAD grādi (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint) (NEW.x_cord, NEW.y_cord), SRID))) <112,5 TAD 'Puse' KAD grādi (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <202,5 ​​TAD ' Augšējā 'WHEN grādi (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord, NEW.y_cord), SRID))) <292,5 TAD' puse 'WHEN grādi (ST_Azimuth (NEW.geom, ST_SetSRID (St_MakePoint (NEW.x_cord) , NEW.y_cord), SRID)))> = 292,5 TAD 'Apakšējais' BEIGAS; ATGRIEZT JAUNU; END; $ body $ LANGUAGE plpgsql;

Rediģēt: trigera funkcija ir rediģēta.


katram laukam ir jāatsaucas uz NEW.field_name

piemēram:

KAD grāds (ST_Azimuth (NEW.geom, ST_Point (NEW.x_cord, NEW.y_cord))) <22,5 TAD 'Centrs'

Skatīties video: Excel za napredne 14 - Datumske funkcije 2. del