Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Procedury składowane, MySQL b. ważne
Jiboom
post 15.02.2007, 14:21:39
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.02.2007

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


Dziś rano zapytałem jak uruchmić możliwość działania procedur składowanych w MySql 5.0.

Ma taka tabelę:
  1. CREATE TABLE `szkolenia` (
  2. `idSzkolenia` int(11) NOT NULL AUTO_INCREMENT,
  3. `Temat` varchar(100) DEFAULT NULL,
  4. `DataUtworzenia` datetime DEFAULT NULL,
  5. `DataModyfikacji` datetime DEFAULT NULL,
  6. PRIMARY KEY (`idSzkolenia`)) ENGINE=InnoDB


Napisałem b. prostą procedurę żeby sprawdzić, czy działa.
  1. CREATE procedutre pobierz
  2. begin SELECT * FROM szkolenia end


i pojawia się komunikat:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select * from Szkolenia' at line 2
Chciałbym pisać bardziej złożone procedury. alejak skonfigurować mysql ab działały?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post 15.02.2007, 14:34:30
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Create procedutre pobierz
blinksmiley.gif
Juz wiesz co źle?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Jiboom
post 15.02.2007, 14:36:48
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.02.2007

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


To tylko literówka. Ale problem pozostaje ten sam
Go to the top of the page
+Quote Post
nospor
post 15.02.2007, 14:46:01
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zajrzyj do manuala:
http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html
W manualu skladnia zawiera jeszcze nawiasy po nazwie procedury

Kod
Create procedure pobierz()
begin
select * from szkolenia;
end


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Jiboom
post 15.02.2007, 14:53:46
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.02.2007

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


ok
w takim razie odpowiedz mi tylko na jedno pytanie. Czytałem w manualu że procedry składowane są defaultowo zablokowane. Pomiojając składnię chodzi o samo działenie owych procedur. Jak powinienem skonfigurować mysql?
Go to the top of the page
+Quote Post
nospor
post 15.02.2007, 14:58:10
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




w zyciu nie uzywalem procedur, wiec nie mam zielonego pojecia smile.gif
Zakladam ze uzywasz mysql5 i ze czytales to:
Cytat
As of MySQL 5.0.3, to use them, it is necessary to have the CREATE ROUTINE privilege.
moze oto chodzi?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Jiboom
post 16.02.2007, 16:37:03
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.02.2007

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


dzięki za uwagę snitch.gif
jesli rozwikłam tego klina to odpiszę
Pozdrawiam

Witam

Odpowiem na posta własnego, ale problem został rozwiązany. Być może przyda się dla tych którzy będą chcieli pisać procedury składowane w MySql.
Otóż mój błąd (przyznaję smile.gif ) polegał na niewłaściwej składni.
W tym wypadku MySql nie okazał się tak tolerancyjny jak MsSql. Wywalało mi błąd składni, ponieważ nie wystarczy tylko zdefiniowac nazwy p.s., ale również ważne jest, jak się to robi. Konieczna jest nazwa bazy danych i po kropoce nazwa procedury.
  1. SELECT nazwa_bazy_danych.nazwa_procedury
  2. (argumenty)
  3. begin SELECT * FROM nazwa_tabeli end


Jeśli ktoś z Was jest zainteresowany pisaniem procedur skłądowanych pod MySql, to chętnie będę czytał takie posty.Wiem że jeśli chodzi o MySql to ta rzecz jest dość świerza, a dla mnie również nowa, więc chętnie poczytam na co powinno się zwracać uwagę przy pisaniu takich procedur.
Pozdrawiam
Go to the top of the page
+Quote Post
SongoQ
post 16.02.2007, 19:38:50
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@Jiboom Procedurki w MySQLu nie sa nowoscia juz od pewnego czasu sa. Co do materialow jak pisac itd to chyba najwiecej w manualu znajdziesz. Planuje napisac notatke na blogu o procedurach, triggerach, funkcjach w MySQLu jesli chcialbys sie czegos konkretnego dowiedziec pisz na PW lub gg.


--------------------
Go to the top of the page
+Quote Post
Jiboom
post 19.02.2007, 09:51:41
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.02.2007

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


Witam.
Ok. Bedę wypatrywał postów które dotyczą warunków integralności i procedur s. Ostatnio sporo poświęcam na to czasu więc możliwe, że napiszę do Ciebie.
Dzięki i pozdrawiam
Go to the top of the page
+Quote Post
maciu
post 19.02.2007, 20:57:35
Post #10





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

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


polecam artykuł
http://gryf.mif.pg.gda.pl/wyklady/bazy_danych/procedury.html
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: 24.07.2025 - 15:04