在MySQL / MariaDB中创建存储过程时出错

时间:2017-10-11 16:46:48

标签: mysql database stored-procedures phpmyadmin mariadb

我正在尝试在MySQL中创建存储过程,并且我不断收到错误

  

#1064 - 您的SQL语法出错;查看与您的MariaDB服务器版本对应的手册,以便在“DELIMITER'附近使用正确的语法”。在第1行

     

预期分隔符。 (靠近""在第10位)

我做错了什么? 编辑:已经摆脱了错误,现在我的程序只是插入空值,任何想法为什么?

DELIMITER //
CREATE PROCEDURE sp_TEXT4()


BEGIN
   DECLARE refstock VARCHAR(20);
    DECLARE frkmarca INT ;
    DECLARE frkallextras INT ;
    DECLARE frkeconservacao INT ;
    DECLARE frkallcategorias INT ;
    DECLARE modelo VARCHAR(45);
    DECLARE titulo VARCHAR(45);
    DECLARE ano INT;
    DECLARE mes INT;
    DECLARE horas INT;

    DECLARE obs TEXT;
    DECLARE preco DOUBLE;
    DECLARE minpreco DOUBLE;
    DECLARE negociavel BINARY(1);
    DECLARE youtube VARCHAR(45);

    SET refstock="refstock";
    SET frkmarca=1;
    SET frkallextras=1;
    SET frkeconservacao=1;
    SET frkallcategorias=1;
    SET modelo ="modelo";
    SET titulo="titulo";
    SET ano=1;
    SET mes=1;
    SET horas=1;

    SET obs="obs";
    SET preco="1";
    SET minpreco="1";
    SET negociavel=true;
    SET youtube="youtube";



INSERT INTO anuncios (refstock,frkmarca,frkallextras,frkeconservacao,frkallcategorias,modelo,titulo,ano,mes,horas,obs,preco,minpreco,negociavel,youtube)
            VALUES (@refstock,@frkmarca,@frkallextras,@frkeconservacao,@frkallcategorias,@modelo,@titulo,@ano,@mes,@horas,@obs,@preco,@minpreco,@negociavel,@youtube);




END;
//
DELIMITER;

2 个答案:

答案 0 :(得分:1)

Alternatives和分隔符之间需要空格:

DELIMITER

答案 1 :(得分:0)

DELIMITER $$
CREATE DEFINER=`id1278863_root`@`%` PROCEDURE `sp_TEXT5`()
BEGIN
   DECLARE refstock VARCHAR(20);
    DECLARE frkmarca INT ;       
    DECLARE frkeconservacao INT ;
    DECLARE frkallcategorias INT ;
    DECLARE modelo VARCHAR(45);
    DECLARE titulo VARCHAR(45);
    DECLARE ano INT;
    DECLARE mes INT;
    DECLARE horas INT;    
    DECLARE obs TEXT;
    DECLARE preco DOUBLE;
    DECLARE minpreco DOUBLE;
    DECLARE negociavel BINARY(1);
    DECLARE youtube VARCHAR(45);

    SET @refstock="refstock";
    SET @frkmarca=1;   
    SET @frkeconservacao=1;
    SET @frkallcategorias=1;
    SET @modelo ="modelo";
    SET @titulo="titulo";
    SET @ano=1;
    SET @mes=1;
    SET @horas=1;     
    SET @obs="obs";
    SET @preco="1";
    SET @minpreco="1";
    SET @negociavel=true;
    SET @youtube="youtube";



 INSERT INTO anuncios (refstock,frkmarca,frkeconservacao,frkallcategorias,modelo,titulo,ano,mes,horas,obs,preco,minpreco,negociavel,youtube)
            VALUES (@refstock,@frkmarca,@frkeconservacao,@frkallcategorias,@modelo,@titulo,@ano,@mes,@dia,@obs,@preco,@minpreco,@negociavel,@youtube);




 END$$
 DELIMITER ;

现在正在工作,谢谢