MySQL:n stored proceduret

Käytän 5.0.51b:tä WAMPista, ja yritän konsolista luoda stored procedurea, vaan eipä onnistu.

Tässä ensimmäinen yritys:

CREATE PROCEDURE newaccount (IN p_username CHAR(20))
BEGIN
INSERT INTO Account (UserName) VALUES (p_username);
END


Taulun määrittely on:
CREATE TABLE Account (
UserID INT NOT NULL AUTO_INCREMENT,
UserName CHAR(20) NOT NULL,
UserPass CHAR(20),
PRIMARY KEY (UserID),
UNIQUE INDEX UserName (UserName),
);

Edellä mainittu koodinpätkä tuottaa seuraavan virheilmoituksen:
ERROR 1064 (42000): 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 '' at line 3

Minusta syntaksi on oikein ja jopa identtinen muutamaan katsomaani esimerkkiin verrattuna, mutta ei vaan toimi.

Mikä mahtaa mättää?
31531
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

>Mikä mahtaa mättää?

Tuo koodi toimii sellaisenaan jos ajat sen Query Browserilla. Konsoli on hieman eri tapaus kun puolipilkku toimii GO-komentona niin syntaksi särkyy.

Eli se vaihda ensin //:ksi ja lopuksi takaisin ;:ksi niin toimii ihan OK.

Tälleen

DELIMITER //
CREATE PROCEDURE `newaccount`(IN p_username CHAR(20))
BEGIN
INSERT INTO Account (UserName) VALUES (p_username);
END
//
DELIMITER ;

Äänestä
  • Sehän toimi kun junan vessa. Jotain tällaista arvelinkin syyksi, mutta hyvä että vastaus tuli kun apteekin hyllyltä.

    Äänestä

  • Hjälp! kirjoitti:

    Sehän toimi kun junan vessa. Jotain tällaista arvelinkin syyksi, mutta hyvä että vastaus tuli kun apteekin hyllyltä.

    >...tuli kun apteekin hyllyltä.

    Ihan säkällä. Olin tekemässä erästä yöaikaispäivitystä ja siinä tuli luppoaikaa sen verran että harauduin tänne. ;)

    Äänestä

Kommentoi aloitusta


Hjälp! kirjoitti:

Käytän 5.0.51b:tä WAMPista, ja yritän konsolista luoda stored procedurea, vaan eipä onnistu.

Tässä ensimmäinen yritys:

CREATE PROCEDURE newaccount (IN p_username CHAR(20))
BEGIN
INSERT INTO Account (UserName) VALUES (p_username);
END


Taulun määrittely on:
CREATE TABLE Account (
UserID INT NOT NULL AUTO_INCREMENT,
UserName CHAR(20) NOT NULL,
UserPass CHAR(20),
PRIMARY KEY (UserID),
UNIQUE INDEX UserName (UserName),
);

Edellä mainittu koodinpätkä tuottaa seuraavan virheilmoituksen:
ERROR 1064 (42000): 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 '' at line 3

Minusta syntaksi on oikein ja jopa identtinen muutamaan katsomaani esimerkkiin verrattuna, mutta ei vaan toimi.

Mikä mahtaa mättää?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu