我试图理解,为什么分隔符与mysql中的存储过程一起使用? 但我不能。
DELIMITER //
CREATE PROCEDURE GetAllProducts()
BEGIN
SELECT * FROM products;
END //
DELIMITER ;`
答案 0 :(得分:1)
Mysql的默认分隔符是;
,它用于命令行中的一个语句,例如
select * from users ;
当你编写一个触发器或存储过程来执行整个代码时,mysql需要了解它的一块代码/查询。
如果没有提供分隔符,那么当mysql在存储过程或触发器中遇到任何;
时,它会认为这是一个语句并将尝试执行它。因此,我们需要为存储过程或触发器提供分隔符,并使mysql理解该分隔符内的任何内容都是一组完整的代码。
所以在你的例子中
SELECT * FROM products;
当开头提供除;
以外的分隔符时,它将成为完整陈述的一部分。