IAmZak
07-02-2008, 12:42
ragazzi ho un problema. faccio l'interazione con il mio database in postgre da php, come ho sempre fatto e ha sempre funzionato. ma per il trigger non va.
il mio codice è questo:
<?php
if($insert_query = @pg_query($conn, "
CREATE OR REPLACE FUNCTION Controlla_Num_Medici_FX() RETURNS trigger AS $Controlla_Num_Medici_FX$
BEGIN
IF EXISTS (SELECT nome_r, nome_padiglione
FROM lavorano NATURAL JOIN personale NATURAL JOIN reparti
WHERE categoria = 'Medico' AND data_f IS NULL AND data_i IS NOT NULL
GROUP BY nome_r, nome_padiglione
HAVING COUNT(*) < 3)
THEN
RAISE EXCEPTION 'In questo reparto ci sono meno di tre medici!';
END IF;
RETURN NEW;
END;
$Controlla_Num_Medici_FX$ LANGUAGE plpgsql;
CREATE TRIGGER Controlla_Num_Medici
AFTER INSERT OR UPDATE ON reparti
FOR EACH ROW EXECUTE PROCEDURE Controlla_Num_Medici_FX()
"))
?>
la funzione e trigger, se li metto così come sono in postgre (pgadmin3) funzionano alla grande, ma al momento di farlo andare da php non vanno.... perchè??? help!
il mio codice è questo:
<?php
if($insert_query = @pg_query($conn, "
CREATE OR REPLACE FUNCTION Controlla_Num_Medici_FX() RETURNS trigger AS $Controlla_Num_Medici_FX$
BEGIN
IF EXISTS (SELECT nome_r, nome_padiglione
FROM lavorano NATURAL JOIN personale NATURAL JOIN reparti
WHERE categoria = 'Medico' AND data_f IS NULL AND data_i IS NOT NULL
GROUP BY nome_r, nome_padiglione
HAVING COUNT(*) < 3)
THEN
RAISE EXCEPTION 'In questo reparto ci sono meno di tre medici!';
END IF;
RETURN NEW;
END;
$Controlla_Num_Medici_FX$ LANGUAGE plpgsql;
CREATE TRIGGER Controlla_Num_Medici
AFTER INSERT OR UPDATE ON reparti
FOR EACH ROW EXECUTE PROCEDURE Controlla_Num_Medici_FX()
"))
?>
la funzione e trigger, se li metto così come sono in postgre (pgadmin3) funzionano alla grande, ma al momento di farlo andare da php non vanno.... perchè??? help!