Skip to content

Exemple trigger avec RAISE #3

@Gustry

Description

@Gustry
-- Contrôle de la géométrie
-- qui doit être dans le Gard
-- On crée une fonction générique qui pourra s'appliquer pour toutes les couches
CREATE OR REPLACE FUNCTION z_formation.validation_geometrie_dans_gard()
RETURNS TRIGGER  AS $limite$
BEGIN
    -- On vérifie l'intersection avec le département, on renvoit une erreur si souci
    IF NOT ST_Intersects(
  NEW.geom,
  (SELECT geom FROM admin.gard_bc LIMIT 1)
 ) THEN
  -- On renvoit une erreur
  RAISE EXCEPTION 'La géométrie doit se trouver dans le Gard';
 END IF;
 
  RAISE NOTICE 'Message de type NOTICE';

 RETURN NEW;
END;
$limite$
LANGUAGE plpgsql;

-- On l'applique sur la couches des collèges
CREATE TRIGGER trg_validation_geometrie_dans_gard
BEFORE INSERT OR UPDATE ON z_formation.colleges_gard
FOR EACH ROW EXECUTE PROCEDURE z_formation.validation_geometrie_dans_gard();

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions