【发布时间】:2015-03-24 09:01:10
【问题描述】:
我想明白,为什么分隔符与mysql中的存储过程一起使用? 但我做不到。
DELIMITER //
CREATE PROCEDURE GetAllProducts()
BEGIN
SELECT * FROM products;
END //
DELIMITER ;`
【问题讨论】:
标签: mysql
我想明白,为什么分隔符与mysql中的存储过程一起使用? 但我做不到。
DELIMITER //
CREATE PROCEDURE GetAllProducts()
BEGIN
SELECT * FROM products;
END //
DELIMITER ;`
【问题讨论】:
标签: mysql
Mysql 的默认分隔符是;,用于命令行中的一条语句,类似于
select * from users ;
当您编写触发器或存储过程来执行整个代码时,mysql 需要了解它是一段代码/查询。
如果没有提供分隔符,那么当mysql在存储过程或触发器中遇到任何;时,它会认为这是一个语句并尝试执行它。因此,我们需要为存储过程或触发器提供一个分隔符,并使 mysql 理解该分隔符内的任何内容都是一套完整的代码。
所以在你的例子中
SELECT * FROM products;
如果开头提供了;以外的分隔符,它将成为完整语句的一部分。
【讨论】: