Avatar billede decrypto Nybegynder
14. april 2005 - 11:55 Der er 21 kommentarer og
1 løsning

Stored procedures hvor i MySQL 5.0?

Jeg har netop downloaded og installeret MySQL 5.0 Beta version. Hvori der skulle være mulighed for at lave stored procedures. Men hvor skriver jeg dem henne?

Jeg bruger MySQL front som GUI, og kan ikke se nogle steder derinde, jeg kan skrive stored procedures.  Er der nogen der ved hvor man skriver dem henne. Der står nemlig ikke noget om hvor man skriver dem, i det white paper jeg har downloaded.
Avatar billede arne_v Ekspert
14. april 2005 - 12:05 #1
http://dev.mysql.com/doc/mysql/en/create-procedure.html

giver vel SQL syntaxen (og MySQL Front kan vel udføre rå SQL sætninger)
Avatar billede arne_v Ekspert
14. april 2005 - 12:05 #2
Er det:

The SQL SECURITY characteristic can be used to specify whether the routine should be executed using the permissions of the user who creates the routine or the user who invokes it. The default value is DEFINER. This feature is new in SQL:2003. The creator or invoker must have permission to access the database with which the routine is associated. As of MySQL 5.0.3, it is necessary to have the EXECUTE privilege to be able to execute the routine. The user that must have this privilege is either the definer or invoker, depending on how the SQL SECURITY  characteristic is set.

som har fristet dig jævnfør tidligere tråd ?
Avatar billede decrypto Nybegynder
14. april 2005 - 12:18 #3
Den side kigge jeg også på. Måske læner jeg mig for meget op af SQL server...
Derinde skriver man nemlig alle sine stored proc under et et stored proc område. Jeg tænkte måske at man gjorde det på samme måde i MySQL 5.0.
Avatar billede decrypto Nybegynder
14. april 2005 - 12:19 #4
Dvs. jeg creater inde i en SQL prompt inde i fx. MySQL.
Avatar billede decrypto Nybegynder
14. april 2005 - 15:38 #5
Hmmm jeg ved ikke hvor jeg skal oprette mine stored procedures. På nettet er der kun eksempler på syntaks etc., men er der nogen der ved hvor man opretter dem.

Jeg har forsøgt at lave en simpel st. proc. i MySQL front i SQL Query maker, men jeg får bare fejl:

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 'END' at line 1

...og jeg har skrevet...

CREATE PROCEDURE CountProducts ()
BEGIN    SELECT COUNT(*) AS ANTAL FROM prodduct;
END
Avatar billede decrypto Nybegynder
14. april 2005 - 15:56 #6
Jeg har installeret MySQL Maestro GUI, og det ser ud som om jeg her igennem kan oprette stored procedures.

Jeg roder det lige igennem.....
Avatar billede arne_v Ekspert
14. april 2005 - 16:09 #7
Du bør kunne oprette stored procedures i hvad som helst som accepterer SQL
kommandoer.

Inklusive mysql command line tool.
Avatar billede decrypto Nybegynder
14. april 2005 - 16:15 #8
også min tanke...
Jeg har også forsøgt med nedenstående->

CREATE PROCEDURE CountProducts (OUT Antal INT)
BEGIN
  SELECT COUNT(*) INTO Antal FROM Product;
END
Avatar billede decrypto Nybegynder
14. april 2005 - 16:16 #9
Der skal vel ikke nogle delimiters på ligsom eksemplerne på nettet? Måske...prøver lige...
Avatar billede decrypto Nybegynder
14. april 2005 - 16:18 #10
...nej...
Avatar billede arne_v Ekspert
14. april 2005 - 16:23 #11
Som læser det skal du:

DELIMITER //
CREATE PROCEDURE CountProducts (OUT Antal INT)
BEGIN
  SELECT COUNT(*) INTO Antal FROM Product;
END
//
DELIMITER ;
Avatar billede decrypto Nybegynder
14. april 2005 - 16:23 #12
hmmm jeg prøver lige din version...
Avatar billede decrypto Nybegynder
14. april 2005 - 16:25 #13
Har du leget med stored proc i MySQL 5.0?
Avatar billede decrypto Nybegynder
14. april 2005 - 16:26 #14
Nej...

Fejl...

DELIMITER //
CREATE PROCEDURE CountProducts (OUT Antal INT)
BEGIN
  SELECT COUNT(*) INTO Antal FROM Product
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 'DELIMITER // CREATE PROCEDURE CountProducts (OUT Antal INT) BEGI
END
//
DELIMITER
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 'END // DELIMITER' at line 1
Avatar billede decrypto Nybegynder
14. april 2005 - 16:27 #15
man kan vel godt ude i CMD taste et eller andet for at få versions nummeret ikk? Prøver det lige. Havde ellers bare installeret MySQL 5.0 ovenpå 4.1 eller hvad den hed.
Avatar billede decrypto Nybegynder
14. april 2005 - 16:30 #16
Jeg tror stadigvæk den har fat i 4.01 versionen...hvordan ændrer man den, sådan lige?
Avatar billede arne_v Ekspert
14. april 2005 - 16:39 #17
Nej - jeg har aldrig leget med 5.x

Det nemmeste er nok at:
  - installerere 4.x og 5.x i forskellige dirs
  - manuelt remove den service man ikke vil bruge og installe den service man vil
    bruge hver gang man skifter
  - start service
Avatar billede decrypto Nybegynder
14. april 2005 - 16:52 #18
De er installeret i forskellige dirs. Jeg har kopieret mine database mappe ind i 5.0. Nu skal jeg vel gøre det som du siger...slukke for 4.01 og starte 5.0....
Avatar billede decrypto Nybegynder
14. april 2005 - 17:06 #19
hmmm jeg fik 'fjernet' min 'gamle' instans 4.01, og prøvede at starte 5.0, men har bøvl med sikkerheds indstillingerne. Jeg har rigtige dårlige erfaringer med at rode rundt...det ender altid med at jeg får det hele ødelagt. Jeg kører vel bare videre med 4.01 indtil, jeg har fået fuldvoksne n#ss#r. :)
Avatar billede arne_v Ekspert
14. april 2005 - 20:57 #20
Jeg synes faktisk ikke at MySQL er slemt. Der er en del små finesser. Men der
er mulighed for at gøre det hele manuelt, hvis man har problemer. Og det meste
er OK dokumenteret.
Avatar billede decrypto Nybegynder
11. maj 2006 - 15:21 #21
Hvem skylder jeg point?
Avatar billede arne_v Ekspert
12. maj 2006 - 02:00 #22
jeg er vist eneste deltager i tråden udover dig selv

:-)

jeg ligger et svar hvis du synes at min indsats har været point værd
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester