se ho una tabella che contiene degli ordini relativi a un videonoleggio e voglio evitare che si aprano più ordini relativi allo stesso prodotto nello stesso periodo di tempo(evitare che si sovrappongano insomma) come scrivo la condizione per far interrogare la tabella prima dell'inserimento e verificare quanto detto sopra?
ho bisogno di verificare quindi che non esistano record dove:
la data di fine sia maggiore di quella di inizio all'inserimento
la data di inizio sia minore della data di fine all'inserimento
graficamente :
nol1.............in---------------fi
nol2.............................................. ........................in----------------------fi
nol3...............................in-----------------------------------fi
ho pensato a una cosa simile :
codice:CREATE TRIGGER ValidateNol BEFORE INSERT ON Nol FOR EACH ROW BEGIN IF EXISTS (SELECT DataInizio,DataFine FROM tabella WHERE DataFine>NEW.DataInizio AND DataInizio<NEW.DataFine) THEN SET NEW.prodID=null; END IF; END; //
però non sono sicuro possa funzionare...gli attributi sarebbero di tipo DATETIME, ma nella documentazione ho letto che EXISTS restituisce TRUE anche se trova solo valori nulli, vorrei sapere allora se questa istruzione servirebbe allo scopo...