Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][SQL] Próba utworzenia funkcji w PMA powoduje błąd #1064
maryl16
post 16.02.2015, 11:56:23
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 16.02.2015
Skąd: Tczew

Ostrzeżenie: (0%)
-----


Witam,
mam problem z utworzeniem funkcji w PMA:

  1. DROP FUNCTION IF EXISTS `ss6_pl_calculateProductPriceForUser`$$
  2. CREATE DEFINER=`samal_14451501`@`%` FUNCTION `ss6_pl_calculateProductPriceForUser`(piUser INT, piProduct INT, piPromotions INT) RETURNS double
  3. READS SQL DATA
  4. BEGIN DECLARE xiActiveDiscount INT; DECLARE xfPrice DOUBLE; DECLARE xfUserMultiply DOUBLE; DECLARE xfDiscount DOUBLE; DECLARE xfProductMultiply DOUBLE; DECLARE xfMultiply DOUBLE; SELECT `iActiveDiscount`, `fPrice` FROM `ss6_pl_products` WHERE `iProduct` = piProduct INTO xiActiveDiscount, xfPrice; IF ((piUser IS NOT NULL) AND (xiActiveDiscount > 0) ) THEN SELECT MAX(`fDiscount`) FROM `ss6_users_groups` INNER JOIN `ss6_users_to_groups` USING(`iGroup`) WHERE `iUser` = piUser INTO xfDiscount; IF (xfDiscount IS NULL) THEN SET xfDiscount = 0; END IF; SET xfUserMultiply = 1 - xfDiscount; SELECT MIN(`fMultiply`) FROM `ss6_pl_products_discounts` INNER JOIN (`ss6_users_groups` INNER JOIN `ss6_users_to_groups` USING (`iGroup`) ) USING (`iGroup`) WHERE ((`iUser` = piUser) AND (`iProduct` = piProduct) ) INTO xfProductMultiply; IF (xfProductMultiply IS NULL) THEN SET xfProductMultiply = 1; END IF; IF (piPromotions > 0) THEN RETURN xfPrice * xfUserMultiply * xfProductMultiply; ELSE IF (xfUserMultiply > xfProductMultiply) THEN SET xfMultiply = xfProductMultiply; ELSE SET xfMultiply = xfUserMultiply; END IF; RETURN xfPrice * xfMultiply; END IF; ELSE RETURN xfPrice; END IF; END$$


Przy próbie wykonania zapytaniawyświetla się następujący komuniakt
Kod
#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 '$$
CREATE DEFINER=`samal_14451501`@`%` FUNCTION `ss6_pl_calculateProductPriceFo' at line 1


, zaś po "wyklikaniu" w PMA

Kod
MySQL zwrócił komunikat #1064 - You have an erroe in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use neat "at line 1"


Proszę o pomoc. Ponieważ przenoszę bazę z hostingu na hosting i reszta się zaimportowała tylko z tym mam problem.


Pozdrawiam
-maryl16
Go to the top of the page
+Quote Post
nospor
post 16.02.2015, 12:01:41
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A ustawiles w PMA pod okieniem na wpisanie sql, delimeter na $$ ? Pewnie nie i ciagle tam jest ;


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
maryl16
post 16.02.2015, 12:06:34
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 16.02.2015
Skąd: Tczew

Ostrzeżenie: (0%)
-----


Dziękuję za uwagę.
Teraz kod błędu zmienił się na
Kod
#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
Go to the top of the page
+Quote Post
nospor
post 16.02.2015, 12:07:34
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No widzisz, problem z zapytaniami już nie ma.

Masz problem z prawami. Wyraźnie napisano: potrzebyjesz "SUPER privilege" by wykonac to zapytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
maryl16
post 16.02.2015, 12:17:45
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 16.02.2015
Skąd: Tczew

Ostrzeżenie: (0%)
-----


Da radę to jakoś ominąć?
Od firmy hostingowej otrymałem nastepującą odpowiedź:
"Uprzejmie informuję, że na serwerze współdzielonym nie ma technicznej możliwości tworzenia funkcji w bazach danych, ani przyznania uprawnień."
Pomimo tego w PMA jest zakładka "Procedury i funkcję" i jedną bez problemu zaimportowałem.

Ten post edytował maryl16 16.02.2015, 12:20:14
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:06