j'essaye de faire une procédure stockée avec des paramètres en utilisant mysql workbench pour insérer des données dans une table.
qu'est-ce que je fais mal??
USE deb42181_ramos;
CREATE PROCEDURE sp_insertuser(IN gebruikersnaamparam varchar(10)
, IN wachtwoordparam VARCHAR(50)
, IN voornaamparam VARCHAR(15)
, IN achternaamparam VARCHAR(15)
, IN tussenvoegselparam VARCHAR(10)
, IN gebruikerlevelparam INT)
BEGIN
INSERT INTO gebruikers (
gebruikersnaam
, wachtwoord
, voornaam
, achternaam
, tussenvoegsel
, gebruikerlevel)
VALUES (gebruikersnaamparam
, wachtwoordparam
, voornaamparam
, achternaamparam
, tussenvoegselparam
, gebruikerlevelparam);
END
l'erreur est dans la dernière ligne des valeurs après) il ne s'attend pas à un;
considère Jeroen
Vous devez changer le délimiteur, comme ceci:
# change the delimiter to $$, so you can use semicolon in create procedure
DELIMITER $$
USE deb42181_ramos$$
DROP PROCEDURE IF EXISTS sp_insertuser$$
CREATE PROCEDURE sp_insertuser(IN gebruikersnaamparam varchar(10)
, IN wachtwoordparam VARCHAR(50)
, IN voornaamparam VARCHAR(15)
, IN achternaamparam VARCHAR(15)
, IN tussenvoegselparam VARCHAR(10)
, IN gebruikerlevelparam INT)
BEGIN
INSERT INTO gebruikers (
gebruikersnaam
, wachtwoord
, voornaam
, achternaam
, tussenvoegsel
, gebruikerlevel)
VALUES (gebruikersnaamparam
, wachtwoordparam
, voornaamparam
, achternaamparam
, tussenvoegselparam
, gebruikerlevelparam);
END$$
# change the delimiter back to semicolon
DELIMITER ;
DELIMITER $$
DROP PROCEDURE IF EXISTS `database_name`.`ins`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `ins`(in nam varchar(50),in username varchar(50), in branch varchar(50))
BEGIN
insert into table_name(nam,user_name,branch) values(nam,username,branch);
END$$
DELIMITER ;
call ins('sas','sdsd','sdsd')