MySql分隔符问题

时间:2017-04-26 12:01:16

标签: mysql sql

我正在学习存储过程并且它很顺利。 我面临一个小问题,我的'DELIMETER'。遗留下来。 每当我添加存储过程时,它都以'END $$'和DELIMETER结束;没有被执行。

结果如下:

mysql> DELIMITER $$
mysql> CREATE PROCEDURE `add_workout` (IN _duration TINYINT(255),IN _premium CHAR(255))
    -> BEGIN
    -> INSERT INTO workouts(duration,premium)  VALUES(_duration,_premium);
    -> END $$
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;

它创建了存储过程,但我很感兴趣为什么它会像这样离开DELIMTER?

它只执行这部分:

DELIMITER $$
CREATE PROCEDURE `add_workout` (IN _duration TINYINT(255),IN _premium CHAR(255))
BEGIN
INSERT INTO workouts(duration,premium)  VALUES(_duration,_premium);
END$$

之后我想打电话给SHOW TABLES;我必须添加$$才能执行它。

1 个答案:

答案 0 :(得分:1)

分隔符更改为$$。在END之后,您的语句以新的分隔符结束,因此它将被执行。

按Enter键运行最后一个语句并将其更改回;

没有特殊原因使其不起作用:https://dev.mysql.com/doc/refman/5.7/en/stored-programs-defining.html