MySQL 分隔符

在本教程中,您将学习如何使用 DELIMITER 命令更改默认的 MySQL 分隔符。

摘要:在本教程中,您将学习如何使用 DELIMITER 命令更改默认的 MySQL 分隔符。

编写 SQL 语句时,使用分号 ( ; ) 分隔两条语句,如下例所示:

SELECT * FROM products;

SELECT * FROM customers;

MySQL Workbench 或 mysql 程序等 MySQL 客户端程序使用分隔符 ( ; ) 分隔语句并分别执行每个语句。

但是,存储过程由多个语句组成,以分号 (;) 分隔。

如果使用 MySQL 客户端程序定义包含分号字符的存储过程,则 MySQL 客户端程序不会将整个存储过程视为单个语句,而是多个语句。

因此,您必须临时重新定义分隔符,以便您可以将整个存储过程作为单个语句传递给服务器。

要重新定义默认分隔符,请使用以下 DELIMITER 命令:

DELIMITER delimiter_character

在 delimiter_character 可以由单一的字符或多个字符的例如 // 或 $$ 。但是,您应该避免使用反斜杠 ( \ ),因为它是 MySQL 中的转义字符。

例如,以下语句将当前分隔符更改为 // :

DELIMITER //

更改分隔符后,您可以使用新的分隔符来结束语句,如下所示:

DELIMITER //

SELECT * FROM customers //

SELECT * FROM products //

要将分隔符更改为默认分隔符,即分号 ( ; ),请使用以下语句:

DELIMITER ;

将 MySQL DELIMITER 用于存储过程

通常,一个存储过程包含多个由分号 (;) 分隔的语句。要将整个存储过程编译为单个复合语句,您需要将分隔符从分号 (;) 临时更改为另一个分隔符,例如 $$ or // :

DELIMITER $$

CREATE PROCEDURE sp_name()
BEGIN
  -- statements
END $$

DELIMITER ;

请注意,您将在下一个教程中学习创建存储过程的语法。

在这段代码中:

  • 首先,将默认分隔符更改为 $$ .
  • 其次, ; 在存储过程的主体中和关键字 $$ 之后使用 ( ) END 来结束存储过程。
  • 第三,将默认分隔符改回分号 (;)

在本教程中,您学习了如何使用 MySQL DELIMITER 命令将默认分隔符 (;) 更改为另一个。