我正在学习存储过程并且它很顺利。 我面临一个小问题,我的'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;我必须添加$$才能执行它。
答案 0 :(得分:1)
分隔符更改为$$。在END之后,您的语句以新的分隔符结束,因此它将被执行。
按Enter键运行最后一个语句并将其更改回;
没有特殊原因使其不起作用:https://dev.mysql.com/doc/refman/5.7/en/stored-programs-defining.html