Salve, mi sto' avvicinando a mysql, e sto' provando a creare il database di esempio di html.it. Fino a creare le tabelle e inserire i dati tutto ok, però al momento di inserire la stored funcion il server non mi accetta l'inserimento, e mi ritorna il seguente messaggio:
"""
Errore
Pare che ci sia un errore nella query SQL immessa. L'errore del server MySQL mostrato qui sotto, se c'è, può anche aiutare nella risoluzione del problema
ERROR: Stringa di Punctuation Sconosciuta @ 11
STR: //
SQL: DELIMITER //
CREATE FUNCTION prezzo(arrivo date, partenza date,
tipo enum('singola','doppia','matrimoniale'))
RETURNS DECIMAL(7,2)
READS SQL DATA
BEGIN
DECLARE varData DATE;
query SQL:
DELIMITER // CREATE FUNCTION prezzo(arrivo date, partenza date, tipo enum('singola','doppia','matrimoniale')) RETURNS DECIMAL(7,2) READS SQL DATA BEGIN DECLARE varData DATE;
Messaggio di MySQL:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //
CREATE FUNCTION prezzo(arrivo date, partenza date,
tipo e' at line 1
""""
la stored funcion è la seguente, che si può travare a questo link:
http://database.html.it/guide/lezion...ioni-alberghi/
DELIMITER //
CREATE FUNCTION prezzo(arrivo date, partenza date,
tipo enum('singola','doppia','matrimoniale'))
RETURNS DECIMAL(7,2)
READS SQL DATA
BEGIN
DECLARE varData DATE;
DECLARE varTotale DECIMAL(7,2) default 0;
DECLARE varPrezzo DECIMAL(7,2);
SET varData = arrivo;
WHILE varData < partenza DO
SELECT prezzo INTO varPrezzo FROM prezzi
WHERE varData BETWEEN periodoDal AND periodoAl
AND tipoCamera = tipo;
SET varTotale = varTotale + varPrezzo;
SET varData = DATE_ADD(varData,INTERVAL 1 day);
END WHILE;
return varTotale;
END; //
DELIMITER ;
Dimenticavo, il server è 5.0
Scusate l'ìgnoranza...
e grazie fin da ora