ciao a tutti!
ho una tabella con 2 campi: Id_Ruolo, Descrizione
Il campo Id_Ruolo è formato da 3 caratteri, di cui il primo può essere solo le lettere 'D', 'G', 'A' mentre gli altri 2 caratteri sono numeri quindi i valori accettati in quel campo saranno per esempio A01,A02,...,D01,D02,...,G01,G02,...
Per fare in modo che non vengano accettati id che hanno come lettera iniziale una diversa dalle 3 scritte sopra, ho creato un trigger, in questo modo:
solo che, giustamente, essendo Id_Ruolo la chiave primaria della tabella, se il valore è sbagliato mette il campo a NULL e mysql da errore.DELIMITER //
CREATE TRIGGER check_insert_ruolo
BEFORE INSERT ON Ruoli
FOR EACH ROW
BEGIN
IF ((NEW.Id_Ruolo != 'D%') OR (NEW.Id_Ruolo != 'A%') OR (NEW.Id_Ruolo != 'G%')) THEN
SET NEW.Id_Ruolo = NULL;
END IF;
END; //
esiste mica un modo per segnalare all'utente che ha inserito un valore non corretto?
Una specie di "raise_application_errors" per mysql per intenderci...
Grazie in anticipo a tutti quanti risponderanno