![]() |
![]() ![]() |
![]() |
![]()
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. -------------------- --------------------------------------------------------------------------------
weblog.axent.pl -------------------------------------------------------------------------------- |
|
|
![]()
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 ![]() 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)); ![]() -------------------- |
|
|
![]()
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
![]() -------------------- --------------------------------------------------------------------------------
weblog.axent.pl -------------------------------------------------------------------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 00:45 |