ragazzi salve sono nuova ho un enorme bisogno di aiuto ho molto sentito parlare di questo forum ed eccomi finalmente iscritta
ho un enorme problema.. in sostanza ho una table fatta in questo modo
CREATE TABLE video
(
id_video INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
n_visualizzazioni INT DEFAULT 0,
dim_video FLOAT(2) DEFAULT 0,
data_post DATE ,
titolo VARCHAR (200) DEFAULT NULL,
durata INT DEFAULT 0,
rif_utente VARCHAR(20) REFERENCES UTENTE_REGISTRATO (username)
on update cascade
on delete no action,
rif_canale INT REFERENCES CANALE (id_canale)
on update cascade
on delete no action
);
devo creare un trigger che mi consenta di verificare che il numero di video postati in un anno da un utente non superi il valore 3 per esempio.. in questo caso se il valore e' superiore non si vedono inserire nuove tuple.
il mio ragionamento e' stato questo ... ma n credo vada bene infatti con l inserimento di nuove tuple non ho alcun messaggio di errore fa inserire senza problemi anche superando il numero limite stabilito. ( lavoro tramite guy navicat ) ho inserito "prova" perche mi e' stato suggerito non so se e' corrett o meno mi aiutate?vi prego!!!!
grazie in anticipo..
DELIMITER @
create trigger verificaNumeroVid
before insert ON VIDEO
for each row
begin
DECLARE PROVA INT;
IF(SELECT COUNT(*)
from video
where rif_utente=NEW.rif_utente and data_post>= curdate()-interval 1 year)>3
then set PROVA=null;
end if;
end;
@DELIMITER ;
chi sa dirmi esplicitamente qual' e' l errore e qual e' il ragionamento esatto! grazie in anticipo a tutti