Temat: Procedura - błąd
-
16-09-2010 18:26 #1Junior Member
- Zarejestrowany
- Sep 2010
- Postów
- 13
Procedura - błąd
Mam taką oto procedurę:
Mysql nie chce jej jednak przyjąć, to jest wynik wykonania:Kod:CREATE PROCEDURE addusr(IN log VARCHAR(32),IN pas VARCHAR(32),IN nam VARCHAR(32),IN adr VARCHAR(256)) BEGIN DECLARE curid INT; SET curid=(SELECT TOP 1 id_user FROM uzytkownik ORDER BY id_user DESC) +1; IF curid IS NULL THEN SET curid=0; END IF; INSERT INTO uzytkownik (id_user,login,pass,name,mail,last_login) VALUES (curid,log,pas,nam,adr,null); END
Czym to może być spowodowane?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 '' at line 3
-
17-09-2010 13:22 #2Junior Member
- Zarejestrowany
- Sep 2010
- Postów
- 21
Odp: Procedura - błąd
Jaką masz wersję mysql?
To chyba nie jest za bardzo poprawne:
Kod:SET curid=(SELECT TOP 1 id_user FROM uzytkownik ORDER BY id_user DESC) +1; IF curid IS NULL THEN SET curid=0; END IF;
-
17-09-2010 14:40 #3Junior Member
- Zarejestrowany
- Sep 2010
- Postów
- 13
Odp: Procedura - błąd
wersja: 5.0.51a-9+lenny2-log
A dlaczego jest niepoprawnie?
-
17-09-2010 22:19 #4Junior Member
- Zarejestrowany
- Sep 2010
- Postów
- 21
Odp: Procedura - błąd
A wiesz co to jest auto_increment?
-
17-09-2010 22:24 #5Junior Member
- Zarejestrowany
- Sep 2010
- Postów
- 13
Odp: Procedura - błąd
Owszem, wiem co to jest, ale nie wydaje mi się, aby robiło to wielką różnicę. Działa tak samo. Z resztą w pewnym sensie potrzebuję, aby id zaczynały się od 0, a nie od 1.
-
17-09-2010 22:36 #6Junior Member
- Zarejestrowany
- Sep 2010
- Postów
- 21
Odp: Procedura - błąd
Robi czy nie dodajesz sobie tylko pracy. ID nie powinno mieć dodatkowych uwarunkowań typu 'ma się zaczynać od 0'. Ma identyfikować każdy wiersz i tak właśnie działa.
A zmieniłeś delimiter na czas deklaracji procedury?
-
18-09-2010 11:27 #7Junior Member
- Zarejestrowany
- Sep 2010
- Postów
- 13
Odp: Procedura - błąd
Co do użycia DELIMITER to znalazłem to w końcu na google i zastosowałem, ale i tak uzyskałem błędy. A wszystko było przez użycie TOP (czy tam FIRST), których MySQL nie uznaje.

LinkBack URL
About LinkBacks



Odpowiedź z Cytatem
Bookmarks