【问题标题】:error creating stored procedure in MySQL/MariaDB在 MySQL/MariaDB 中创建存储过程时出错
【发布时间】:2018-03-23 10:42:38
【问题描述】:

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

#1064 - 您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的“DELIMITER”附近使用的正确语法

预期的分隔符。 (靠近位置 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;

【问题讨论】:

标签: mysql database stored-procedures phpmyadmin mariadb


【解决方案1】:

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

DELIMITER ;

【讨论】:

    【解决方案2】:
    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 ;
    

    现在可以使用了,谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-09
      • 2020-01-10
      • 2020-12-02
      • 1970-01-01
      • 2016-11-28
      相关资源
      最近更新 更多