Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Procedury składowane
Forum PHP.pl > Forum > Bazy danych > MySQL
Jiboom
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?
nospor
Cytat
Create procedutre pobierz
blinksmiley.gif
Juz wiesz co źle?
Jiboom
To tylko literówka. Ale problem pozostaje ten sam
nospor
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
Jiboom
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?
nospor
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?
Jiboom
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
SongoQ
@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.
Jiboom
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
maciu
polecam artykuł
http://gryf.mif.pg.gda.pl/wyklady/bazy_danych/procedury.html
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.