![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 2.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Potrzebuję sugestii co do sposobu przygotowania bazy w ten sposób, by po dodaniu do odpowiedniej tabeli nowego rekordu, automatycznie tworzyła się w bazie nowa tabela, której nazwą byłaby wartość jednego z pól wcześniej dodanego rekordu. Jakiś pomysł? Czy istnieje w ogóle możliwość stworzenia takiego powiązania, czy pozostaje jedynie przesłanie oddzielnie INSERT'a i CREATE TABLE? Myślałem o triggerach, ale one podobno nie umożliwiają tworzenia nowych tabel. Pozdrawiam. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 12 Dołączył: 31.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
możesz skorzystać z triggera, a w nim odapalać wcześniej przez ciebie odpowiednio spreparowane zapytanie za pomocą funkcji execute
Przykład:
Ten post edytował trafas 24.06.2012, 11:05:52 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 2.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
możesz skorzystać z triggera, a w nim odapalać wcześniej przez ciebie odpowiednio spreparowane zapytanie za pomocą funkcji execute Przykład:
Twoja propozycja jest zgodna z MySQL? Bo z tego co manual mówi to MySQL używa nieco innej składni dla execute (mnie w każdym razie się wysypuje błąd składni przy próbie zaimplementowania Twojego rozwiązania). Vide -> http://dev.mysql.com/doc/refman/5.0/en/sql...statements.html Ale nawet idąc tym tropem, po przerobieniu tego na składnię zgodną z MySQL, dostaję błąd: "ERROR 1336 (0A000): Dynamic SQL is not allowed in stored function or trigger" Mój kod w tym przypadku wygląda tak:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Cytat SQL prepared statements (PREPARE, EXECUTE, DEALLOCATE PREPARE) can be used in stored procedures, but not stored functions or triggers. Thus, stored functions and triggers cannot use dynamic SQL (where you construct statements as strings and then execute them). Dziwne ,kolega wyżej pisał pewnie w MSSQL , bo tam w trigerach można używać dynamicznego języka SQL w MySql jak jest napisane to nie można. Ten post edytował Niktoś 24.06.2012, 13:02:07 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 2.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź.
Wychodzi na to, że nie pozostaje mi nic innego jak przeprojektowanie bazy i zrobienie relacji "jak Pan Bóg przykazał". No chyba, że ktoś ma jakiś inny pomysł? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 19:33 |