Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
je n'arrive pas à écrire une requête pour NE PAS récupérer les champs NULL et vide :
J'ai un table avec des valeurs dans le champ1 qui sont soient NULL, soient rempli avec ' '
SELECT table.champ1
FROM table
WHERE table.champ1 <> '' OR table.champ1 IS NOT NULL;
en résultat je récupère dans le champ1 ttes les valeurs qui ne sont pas nulles mais aussi celles qui sont rempli avec ' '
quelqu'un peut-il m'aider ?
Merci
Bonjour,
ha en effet si je peux regrouper mes triggers en un seul se serait mieux!! je ne savias pas que cela était possible.
Voici la structure de mes triggers
trigger tablea :
CREATE OR REPLACE FUNCTION exo.tablea_fct_trg()
RETURNS trigger AS
$BODY$
BEGIN
IF TG_OP = 'INSERT' THEN
INSERT INTO exo.tablea (id_a, champa, geom) VALUES (DEFAULT, NEW.champa, NEW.geom);
RETURN NEW;
ELSIF TG_OP = 'UPDATE' THEN
UPDATE exo.tablea SET (id_a, champa, geom) = (DEFAULT, NEW.champa, NEW.geom)
WHERE id_a = NEW.id_a;
RETURN NEW;
ELSIF TG_OP = 'DELETE' THEN
DELETE FROM exo.tablea
WHERE id_a = OLD.id_a;
RETURN NULL;
END IF;
RETURN NEW;
END;
Trigger tableb :
CREATE OR REPLACE FUNCTION exo.tableb_fct_trg()
RETURNS trigger AS
$BODY$
BEGIN
IF TG_OP = 'INSERT' THEN
INSERT INTO exo.tableb (champb, geom) VALUES (NEW.champb, NEW.geom);
RETURN NEW;
ELSIF TG_OP = 'UPDATE' THEN
UPDATE exo.tableb SET (champb, geom) = (NEW.champb, NEW.geom)
WHERE id_b = NEW.id_b;
RETURN NEW;
ELSIF TG_OP = 'DELETE' THEN
DELETE FROM exo.tableb
WHERE id_b = OLD.id_b;
RETURN NULL;
END IF;
RETURN NEW;
END;
Bonjour,
j'aimerais savoir comment paramétrer mes tables ou ma vue pour que le champ "foreign key" se remplisse automatiquement.... j'ai bien mis dans la structure de mes tables les contraintes de clés primaires et clé étrangère, j'ai aussi une vue qui reprend l'ensemble des champs de mes 2 tables. Quand je saisie des données dans cette vue, les champ_a et champ_b se remplissent bien mais pas le champ "clé étrangère" a_id........
voici la structure de mes tables :
tablea
id_a (pk - serial)
champa
et
tableb
id_b (pk - serial)
a_id (fk - integer)
champb
et voici celle de ma vue :
CREATE OR REPLACE VIEW v_test AS
SELECT
id_a,
champa,
champb,
FROM tablea
JOIN tableb ON tablea.id_a = tableb.a_id
CREATE TRIGGER tablea_trg
INSTEAD OF INSERT OR UPDATE OR DELETE
ON v_form
FOR EACH ROW
EXECUTE PROCEDURE tablea_fct_trg();
CREATE TRIGGER tableb_trg
INSTEAD OF INSERT OR UPDATE OR DELETE
ON v_form
FOR EACH ROW
EXECUTE PROCEDURE tableb_fct_trg();
pouvez-vous m'aider?
Pages : 1