![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z procedurami w MySQL. Chciałbym utworzyć jedną uniwersalną procedurę "dia_saveNode", ale MySQL nie pozwala mi stworzyć dwóch procedur o takiej samej nazwie, ale z innymi parametrami :
Komunikat : PROCEDURE dia_saveNode already exists Próbowałem to obejść w taki sposób, że stworzyłem trigger'a, ale tu też mam problem ponieważ: pomimo przypięcia triggera do akcje BEFORE INSERT MySQL nie pozwala mi opuścić w klauzuli INSERT INTO ... kolumn, dla których nie ma wartości domyślnej i są NOT NULL. Macie może jakiś pomysł jak to obejść ? Alternatywą dla tego rozwiązania jest naturalnie zrobienie kilku procedur. Docelowo procedura ma być wywoływana z CakePHP, który w modelu mam jedną funkcję metodę save i chciałem zrobić dokładne odwzorowanie. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Słuchaj a nie można wewnątrz procedury sprawdzić przekazanych argumentów i w zależności od ich wartości wykonać odpowiedni blok kodu?
Nie znam się na procedurach bo w zasadzie korzystam tylko z triggerów i funkcji ale pewnie można użyć wewnątrz kodu procedury instrukcji warunkowej odpowiadającej za wykonanie odpowiedniego polecenia. Może nawet z wnętrza procedury możesz wywołać inne procedury lub funkcje wtedy rola tej procedury mogłaby sie ograniczać wyłącznie do rozpoznania parametrów wyjściowych. Taki controller dla SQL'a (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Coś jak np: masz dwie funckcje: func_a() i func_b(); i warunek w procedurze przyjmującej kilka parametrów wejściowych param1,param2,param3: select if(param2 is not null,func_a(param2),func_b(param1)); (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
W zasadzie niegłupi pomysł, ale mierzi mnie na samą myśl, że będę to musiał robić pod MySQL (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 15:55 |