Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> CREATE FUNCTION i problem z tranzakcją
Mion
post 11.02.2010, 16:56:24
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

Ostrzeżenie: (0%)
-----


Witam ponownie,
w ciele funkcji
  1. DELIMITER $$
  2.  
  3. DROP FUNCTION IF EXISTS `DodajPrywatnaWiadomosc` $$
  4. CREATE FUNCTION `DodajPrywatnaWiadomosc`(temat VARCHAR(100),tresc TEXT, nadawca INT, odbiorca INT) RETURNS int(11)
  5. BEGIN
  6. DECLARE idwAU,i2,i3,i4 INT;
  7.  
  8. START TRANSACTION;
  9. #Dalsze instrukcje SQL


chciałem skorzystać z transakcji jednak program MySQL Query Browser wywala błąd:
Script line: 4 Explicit or implicit commit is not allowed in stored function or trigger. NR bledu 1422

Wersja mojego Mysql to: 'version', '5.0.67'

Pytanie brzmi czy nie można korzystać z transakcji w ciele funkcji, lub procedury ?

Ten post edytował Mion 11.02.2010, 16:57:26
Go to the top of the page
+Quote Post
Mchl
post 11.02.2010, 17:01:46
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


W funkcji nie. W procedurze tak.
Go to the top of the page
+Quote Post
Mion
post 11.02.2010, 17:12:52
Post #3





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

Ostrzeżenie: (0%)
-----


Faktycznie w procedurze idzie zastosować tranzycje, ale dziwę się, ze w funkcji nie idzie... Swoją drogą ciekawe dlaczego tak zrobili sad.gif
Go to the top of the page
+Quote Post
Mchl
post 11.02.2010, 17:15:08
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


Bo funkcja ma zwracać wartość a nie robić coś.

Inna sprawa, że w triggerach też nie można.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 09:19