Ciao tutti! vi chiedo un immenso aiuto. devo fare un trigger per gestire il seguente aspetto:
SE SI TENTA DI MODIFICARE IL NUMERO DI CAMERE DISPONIBILI DI UN HOTEL CON UN NUMERO
SUPERIORE ALLA DISPONIBILITA' EFFETTIVA, LA PROCEDURA SI ARRESTA CON UN'ECCEZZIONE.
Ad esempio se faccio:
e la disponibilità è minore di 500 mi dovrebbe dare una eccezzione.codice:UPDATE hotel SET disponibilita=disponibilita-500 WHERE nome='Cristallo'
Tabella HOTEL:
Ho provato in questo modo, ma ovviamente non funziona:codice:CREATE TABLE HOTEL (CODICE NUMERIC (7) NOT NULL, NOME VARCHAR (50), CAMERE NUMERIC (5), DISPONIBILITA NUMERIC (5), PREZZO NUMERIC (10), CATEGORIA NUMERIC (2) NOT NULL, PRIMARY KEY (CODICE), FOREIGN KEY (CODICE) REFERENCES STRUTTURE_TURISTICHE ON DELETE CASCADE ON UPDATE CASCADE );
codice:CREATE FUNCTION disponibilita() RETURNS trigger AS $disponibilita$ BEGIN IF NEW.disponibilita<0 THEN RAISE EXCEPTION 'Disponibilità insufficente'; RETURN NULL; ELSE UPDATE hotel SET disponibilita=NEW.disponibilita WHERE codice = NEW.codice; RETURN NEW; END IF; END; $disponibilita$ LANGUAGE plpgsql; CREATE TRIGGER GESTIONE_HOTEL BEFORE UPDATE ON HOTEL FOR EACH ROW EXECUTE PROCEDURE disponibilita ();
....scusate ma non sono molto pratico di trigger è solo che mi serve per un progetto all'uni!
Vi ringrazio anticipatamente![]()

Rispondi quotando