Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z procedurą, DECLARE variable INT DEFAULT 0;
splatch
post
Post #1





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


Witam serdecznie mam taką procedurę:
  1. CREATE PROCEDURE delete_values(IN ile INT)
  2. BEGIN DECLARE adone INT DEFAULT 0;
  3. DECLARE a INT DEFAULT 0;
  4. DECLARE b INT DEFAULT 0;
  5. DECLARE cnt INT DEFAULT 0;
  6. DECLARE laste INT DEFAULT 0;
  7.  
  8. DECLARE cur1 CURSOR FOR SELECT v.user_parameter_value_id, v.user_parameter_values_id
  9. FROM user_parameter_value
  10. AS v
  11. INNER JOIN (
  12. SELECT user_parameter_values_id, COUNT(*) AS cnt
  13. FROM `user_parameter_value`
  14. GROUP BY user_parameter_values_id
  15. ) AS costam ON costam.cnt > 3 AND v.user_parameter_values_id = costam.user_parameter_values_id;
  16.  
  17. DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET adone = 1;
  18.  
  19. OPEN cur1;
  20.  
  21.  
  22. REPEAT
  23. FETCH cur1
  24. INTO a,
  25. b;
  26. IF NOT adone THEN
  27. IF b <> laste THEN
  28. SET cnt = 0;
  29. SET laste = b;
  30. ELSE
  31. IF cnt > ile THEN
  32. DELETE
  33. FROM user_parameter_value
  34. WHERE user_parameter_value_id = a;
  35. END IF;
  36. END IF;
  37. SET cnt = cnt+1;
  38. END IF;
  39. UNTIL adone END REPEAT;
  40.  
  41. CLOSE cur1;
  42. END

Nie wiem czemu, ale nie mogę stworzyć procedury. Na mysql 5.0.19 ten kod powoduje błąd:
Kod
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear 'INT DEFAULT 0' at line 3

Dlaczego? Declare jest w porządku, tak jak nakazuje dokumentacja..

Ten post edytował splatch 11.04.2006, 12:03:16


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 19.08.2025 - 11:33