PDA

View Full Version : [SQL]RAISE EXCEPTION in MySql


Paulthecer
15-04-2008, 12:16
Ciao a tutti,
ho problema... Devo realizzare una stored procedure in mysql che al verificarsi di una condizione mi stampi un messaggio di errore. Ho visto che esiste per PostgreSQL il comando RAISE EXCEPTION e volevo sapere se esiste un comando equivalente in MySql e come si usa. Brutalmente ho provato ad usare RAISERROR, ma non funziona.
HELP ME!!!!!!!

lo spaccato di codice deve semplicemente fare:

DELIMITER $$

DROP PROCEDURE IF EXISTS `multisala`.`checkbill` $$
CREATE PROCEDURE `multisala`.`checkbill` ()
BEGIN
DECLARE idu, conto INT;

SELECT UID FROM prenotazione WHERE IDPREN = (SELECT MAX(IDPREN) FROM prenotazione) INTO idu;
SELECT Saldo FROM utente WHERE UID = idu INTO conto;

IF conto > 0.20 THEN

UPDATE prenotazione SET Saldo = conto - 0.20;

ELSE

RAISERROR ('Saldo insufficiente')

END IF;

END $$

DELIMITER ;

ramarromarrone
15-04-2008, 12:22
in POSTGRE esiste il RAISE EXCEPTION...in mysql penso esista qualcos di simile..
prova a controllare sul sito della sun

Paulthecer
16-04-2008, 15:44
E in postgres lo sapevo già...
allora nessuno che mi sa aiutare... Che è... Vi ho messo in difficoltà?

johnnyd
29-04-2008, 00:18
Ciao a tutti,
ho problema... Devo realizzare una stored procedure in mysql che al verificarsi di una condizione mi stampi un messaggio di errore. Ho visto che esiste per PostgreSQL il comando RAISE EXCEPTION e volevo sapere se esiste un comando equivalente in MySql e come si usa. Brutalmente ho provato ad usare RAISERROR, ma non funziona.
HELP ME!!!!!!!

lo spaccato di codice deve semplicemente fare:

DELIMITER $$

DROP PROCEDURE IF EXISTS `multisala`.`checkbill` $$
CREATE PROCEDURE `multisala`.`checkbill` ()
BEGIN
DECLARE idu, conto INT;

SELECT UID FROM prenotazione WHERE IDPREN = (SELECT MAX(IDPREN) FROM prenotazione) INTO idu;
SELECT Saldo FROM utente WHERE UID = idu INTO conto;

IF conto > 0.20 THEN

UPDATE prenotazione SET Saldo = conto - 0.20;

ELSE

RAISERROR ('Saldo insufficiente')

END IF;

END $$

DELIMITER ;
scommetto che ti stai esaurendo anche tu con il progetto di basi!!! grrr ho bisogno anche io di un'alternativa al raise exception.. se l'hai trovata..contattami su msn [email protected] ;) ciaoo

Paulthecer
29-04-2008, 10:56
Si sto impazzendo è in più credo proprio che non finirò in tempo per consegnarlo perchè mi manca da fare tutta la documentazione tecnica. Quindi mi sa che rinvierò a settembre. L'unica soluzione che mi è venuta in mente per risolvere il problema del RAISE EXCEPTION e di mettere il controllo a livello di PHP invece che da DBMS.