【问题标题】:Why delimiter used with stored procedure in mysql?为什么分隔符与mysql中的存储过程一起使用?
【发布时间】:2015-03-24 09:01:10
【问题描述】:

我想明白,为什么分隔符与mysql中的存储过程一起使用? 但我做不到。

DELIMITER //
CREATE PROCEDURE GetAllProducts()
   BEGIN
       SELECT *  FROM products;
   END //
DELIMITER ;`

【问题讨论】:

    标签: mysql


    【解决方案1】:

    Mysql 的默认分隔符是;,用于命令行中的一条语句,类似于

    select * from users ;
    

    当您编写触发器或存储过程来执行整个代码时,mysql 需要了解它是一段代码/查询。

    如果没有提供分隔符,那么当mysql在存储过程或触发器中遇到任何;时,它会认为这是一个语句并尝试执行它。因此,我们需要为存储过程或触发器提供一个分隔符,并使 mysql 理解该分隔符内的任何内容都是一套完整的代码。

    所以在你的例子中

    SELECT * FROM products; 
    

    如果开头提供了;以外的分隔符,它将成为完整语句的一部分。

    【讨论】:

      猜你喜欢
      • 2013-08-19
      • 2014-08-21
      • 2017-09-03
      • 2013-03-25
      • 2022-08-07
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      相关资源
      最近更新 更多