Salve a tutti,
volevo chiedervi un aiuto perché ho un problema con una stored procedure e mi serve assolutamente risolverla per l'esame di Basi di Dati.
Innanzitutto vi spiego il mio problema…io ho creato un trigger che controlla che prima di inserire un record in una tabella controlla se ci sono duplicati. Se ce ne sono, non inserisce alcun record, altrimenti continua tranquillo. Il codice che ho scritto e' questo:
codice:
CREATE TRIGGER duplicateLogs BEFORE INSERT
ON users_log FOR EACH ROW BEGIN
CALL duplicateRows(NEW.IDUser,NEW.IDFilm,NEW.date_visit,@result);
END;
|
CREATE PROCEDURE duplicateRows(IN iduser INT, IN idfilm INT, IN data_visita DATE, OUT result INT)
BEGIN
SET result = 0;
SELECT COUNT(IDUser) INTO result FROM users_log WHERE IDUser=iduser AND IDFilm=idfilm AND CAST(date_visit AS DATE)=data_visita;
END;
|
il codice è ancora da completare perché mi sono bloccato già nella select della stored procedure. Purtroppo quando la vado ad eseguire, la selet non mi restituisce il numero di record che rispettano la condizione, anzi non mi spiego proprio cosa conti. A volte mi restituisce ad esempio 6 quando nella tabella ci sono massimo 5 righe.
Ho provato a fare il WHERE anche con una sola condizione ma e' come se non me le calcolasse.
Dico subito che il passaggio di parametri e' giusto, ho controllato e i valori li passa correttamente. Io mi ci sto sbattendo la testa da giorni ma non trovo soluzione. Qualcuno di voi ha qualche idea sul problema?
Grazie anticipatamente per una risposta.