Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在DB FIDLE(MySQL 8.0)中使用分隔符_Mysql_Sql_Mysql 8.0 - Fatal编程技术网

在DB FIDLE(MySQL 8.0)中使用分隔符

在DB FIDLE(MySQL 8.0)中使用分隔符,mysql,sql,mysql-8.0,Mysql,Sql,Mysql 8.0,我正试图在db-fiddle.com()上创建一个存储过程,但我很难弄清楚如何处理我的DELIMITER语句 我在模式端构建了表和存储过程代码,并尝试从查询端调用存储过程 DELIMITER // CREATE PROCEDURE conservation_count (IN con INT) BEGIN DECLARE ytotal INT; SET ytotal := 0; SET ytotal := (SELECT COUNT(*) FROM Spec

我正试图在db-fiddle.com()上创建一个存储过程,但我很难弄清楚如何处理我的DELIMITER语句

我在模式端构建了表和存储过程代码,并尝试从查询端调用存储过程

DELIMITER //          
CREATE PROCEDURE conservation_count (IN con INT)
BEGIN
   DECLARE ytotal INT;
   SET ytotal := 0;
   SET ytotal := (SELECT COUNT(*) FROM Species, Animals
              WHERE Species.ID = Animals.species
              AND Species.ConservationStatus = con);
   SELECT ytotal;
   INSERT INTO conservation_ct VALUES (ytotal);
END //     
DELIMITER;
这是db FIDLE发回的架构错误:

Schema Error: Error: ER_PARSE_ERROR: 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' at line 10

所以经过更多的测试,有两件事发生了:

  • 我的上一个分隔符需要分隔符和之间的空格;-这可能导致分隔符错误
  • DB Fiddle不喜欢我的存储过程。当我取出内部变量并对其进行简化时,它可以完美地工作:

    DELIMITER //
    CREATE PROCEDURE conservation_count (IN var1 INT)
    BEGIN
    SELECT COUNT(*) FROM Species, Animals WHERE Species.ID = Animals.species 
    AND Species.ConservationStatus = var1 ;
    END //
    DELIMITER ;
    

  • . . 这是个好问题。我觉得rextester更容易做到这一点。语法似乎没有问题。这是小提琴似乎有问题。似乎你不需要在db小提琴网站上使用
    分隔符