martedì 10 novembre 2009

Mysql e il (mio) mal di testa

Uno dei prodotti più diffusi in ambito Open Source è sicuramente MySql, un ottimo database, ormai diventato da tempo una affidabile e completa alternativa dei rivali a pagamento, tra i quali c'è anche Oracle, che ne ha acquisto la proprietà, avendo comperato Sun Microsytems (e speriamo bene..).

In particolare i Tools grafici hanno finalmente raggiunto, nelle ultime versioni, un eccellente livello di prestazione e produttività.

Negli ultimi mesi sto iniziando a migrare alcune applicazioni di mio utilizzo personale su questa piattaforma e con il migrations tools è davvero una passeggiata.
Ci sono però ancora alcune cautele che occorre avere prima di accingersi a fare un salto in questa direzione con applicazioni di più o meno elevata complessità.

Qui sotto riporto un esempio funzionante di creazione di una banale Function.
Per arrivare a trovare la corretta sintassi (in apparenza semplicissima) di queste poche righe ho penato non poco.
Ancora adesso non sono riuscito ad individuare che cosa stessi sbagliando, ma ho perso un paio di ore a cercare in vano esempi e documentazione che mi aiutasse a capire che cosa non funzionava.
Alla fine tutto è bene quel che finisce bene.

L'esempio qui sotto può essere utilizzato come base (per la sintassi) per produrre funzioni più complesse.

DELIMITER
$$

DROP FUNCTION IF EXISTS `nn` $$
CREATE DEFINER=`root`@`localhost` FUNCTION `nn`(r integer)
RETURNS varchar(6) CHARSET latin1
begin
declare c varchar(2);

if r>5 then set c="maggiore";
else set c = "minore";
end if;

return c;
end $$

DELIMITER ;

Nessun commento: