![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 12 Dołączył: 15.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zastanawiam się po co definiuje się typ parametrów dla funkcji i procedur składowych. Mógłby ktoś to po krótce wyjaśnić?
Chodzi mi o to CHAR(1). Np. Mam taką małą procedurę:
Mogę jeśli wywołam je z parametrem 1 to zwróci mi usera z id 1 ale jak wywołam np z parametrem 'foobar' to zwraca pusty wynik ale nie pokazuje błędu, więc po co ta deklaracja typu? -------------------- Pomogłem? Kliknij POMÓGŁ
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 006 Pomógł: 111 Dołączył: 23.07.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nigdy nie zagłębiałem się w procedury i jak działają, ale wnioskując po innych językach programowania (tzn takimi z typem zmiennych), to robi się to po to, że jak oczekujesz np bool, to żeby nikt nie wywołał procedury z intem, który wynosi np. 2.
Z resztą sam sobie chyba wytłumaczyłeś przykładem z 1 i 'foobar' - jedynka przeszła, a foobar już nie. Ten post edytował IceManSpy 7.08.2012, 11:23:05 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Raczej chodzi tu zwyczajnie o optymalizację.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 12 Dołączył: 15.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nigdy nie zagłębiałem się w procedury i jak działają, ale wnioskując po innych językach programowania (tzn takimi z typem zmiennych), to robi się to po to, że jak oczekujesz np bool, to żeby nikt nie wywołał procedury z intem, który wynosi np. 2. Z resztą sam sobie chyba wytłumaczyłeś przykładem z 1 i 'foobar' - jedynka przeszła, a foobar już nie. No właśnie foobar przeszedł, a nie zwrócił rekordów w zasobie, bo naturalnie nie ma usera o id 'foobar' -------------------- Pomogłem? Kliknij POMÓGŁ
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat No właśnie foobar przeszedł, a nie zwrócił rekordów w zasobie, bo naturalnie nie ma usera o id 'foobar' uscislajac - to nie znalazl usera o id 'f' j. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
A nie zadzialalo to tak jak w phpie?
WHERE id=(int)foobar czyli wyszlo WHERE ID=0 ps w mysqlu nie ma czegos takiego jak "warningi" ? -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
@maly_swd:: działa podobnie, ale zauważ ze tutaj masz definicję pola CHAR(1)
są warringi. j. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
ja widze: REATE PROCEDURE `proc01` (IN user_id int(1))
int;) -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Procedury składowe poprzez m.in. jawne określanie typów zmiennych i cache'owanie - skracają czas wykonywania zapytań. Jest to jedna z wielu form optymalizacji w porównaniu do zwykłych zapytań.
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 3 Dołączył: 17.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
To, że działają szybciej to mit. Sama kompilacja w mySQL to czas pomijalnie mały, do tego są nieelastyczne.
Lepiej budować w locie. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 18 Dołączył: 13.03.2009 Skąd: lublin Ostrzeżenie: (0%) ![]() ![]() |
To, że działają szybciej to mit. Sama kompilacja w mySQL to czas pomijalnie mały, do tego są nieelastyczne. Lepiej budować w locie. nie każdą konstrukcję zbudujesz w locie http://dev.mysql.com/doc/refman/5.0/en/cursors.html |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 10:27 |