Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 4 Dołączył: 6.11.2008 Skąd: Bytom Ostrzeżenie: (0%)
|
Witam
mam takie dwie tabelki w bazie Kod groups id INT PK groupname VARCHAR inheritance_group group_id INT // id grupy inherit_id INT // id grupy którą dana grupa dziedziczy w innych tabelkach przechowuję uprawnienia dla kazdej z gróp (ale w tej chweili to nieistotne) przykładowe dane w tych tabelkach to Kod groups: 1 grupa1 2 grupa2 3 grupa3 4 grupa4 itd a w inheritance_group 3 1 3 2 4 3 czyli każda grupa może dziedziczyć dowolną ilość grup z których każde może także dziedziczyć ich dowolną ilość potrzebuje teraz napisać procedurę składowaną która wyciągnie mi wszystkie grupy z których dziedziczy grupa podana w parametrze wejściowym (zarówno te bezpośrednio dziedziczone jak i te wyżej w hierarchii próbowałem już na kilka sposobów ale jakoś nie mogę sobie z tym poradzić. potrafię to zrobić za pomocą php-a i procedury wyciągającej tylko te z których bezpośrednio dziedzczy dana grupa ale wolałbym wyciągać to jedną procedurą da się to w ogóle osiągnąć za pomocą jednej procedury sql? Ten post edytował tomek_ 6.11.2008, 13:56:13 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 4 Dołączył: 6.11.2008 Skąd: Bytom Ostrzeżenie: (0%)
|
dzięki - wprawdzie jeszcze nie próbowałem tego zastosować ale wygląda na to że o coś takieg mi chodziło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
na podstawie tego linka udało mi się napisac odpowiednią procedurę ale pojawił sie problem gdy próbuję ją wywołać. pojawia mi się taki komunikat Kod #1436 - Thread stack overrun: 35600 bytes used of a 131072 byte stack, and 96000 bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack. no to zwiększyłem wartość thread_stack z 128 do 256 k po czym jak wywołuję ponownie procedurę mam Kod #1456 - Recursive limit 25 (as set by the max_sp_recursion_depth variable) was exceeded for routine test jak zwiększę max_sp_recursion_depth to znowu wywaa komunikat o za małej wartości thread_stack Kod #1436 - Thread stack overrun: 168656 bytes used of a 262144 byte stack, and 96000 bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack. ma ktoś jakiś pomysł jak to rozwiązać - od jakich jeszcze zmiennych to może zależeć ? |
|
|
|
tomek_ procedura wyciągająca strukturę drzewiastą 6.11.2008, 13:44:57
osiris http://www.artfulsoftware.com/mysqlbook/sa...sqled... 7.11.2008, 09:19:57
osiris obstawialbym to ze Twoja struktura grup z powodu j... 12.11.2008, 19:38:20
tomek_ no rzeczywiście miałem błąd w jednym z zapytań prz... 13.11.2008, 08:33:30 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 03:58 |