MySQL分隔符

时间:2019-11-20 08:52:30  来源:igfitidea点击:

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

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

SELECT * FROM products;

SELECT * FROM customers;

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

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

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

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

要重新定义默认的定界符,请使用DELIMITER命令:

DELIMITER delimiter_character

delimiter_character可以由单个字符或多个字符组成,例如//或$$。
但是,应避免使用反斜杠(),因为这是MySQL中的转义字符。

例如,此语句将分隔符更改为//:

DELIMITER //

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

DELIMITER //

SELECT * FROM customers //

SELECT * FROM products //

要将定界符改回分号,请使用以下语句:

DELIMITER ;

使用MySQL DELIMITER进行存储过程

存储过程通常包含多个用分号(;)分隔的语句。
要将整个存储过程编译为单个复合语句,您需要将分号从分号(;)临时更改为其他定界符,例如$$或//

DELIMITER $$

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

DELIMITER ;

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

在此代码中:

  • 首先,将默认分隔符更改为$$

  • 其次,在存储过程的主体中使用(;),并在END关键字后使用$$以结束存储过程。

  • 第三,将默认定界符改回分号(;)

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