mysql无法更改delemiter

mysql无法更改delemiter,第1张

DELIMITER //

CREATE PROCEDURE HelloWorld()

BEGIN

SELECT 'Hello World'

END//

DELIMITER

call HelloWorld()

+-------------+

| Hello World |

+-------------+

| Hello World |

+-------------+

1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

通过上面这个例子, 你能明白 DELIMITER 如何使用了么?

DELIMITER就是 告诉 mysql , 把什么字符, 作为 语句结束的字符。

默认情况下, 是 分号

但是存储过程里面, 有分号的。

如果不定义

DELIMITER //

那么 mysql 遇到第一个就认为语句结束了。

用上面的例子来说, 就是

CREATE PROCEDURE HelloWorld()

BEGIN

SELECT 'Hello World'

就结束了, 但是这样一来, 明显是语法错误的。

因此要使用

DELIMITER //

来, 告诉 MySql , 遇到 // 符号了, 才认为整个语句结束了

这样一来

CREATE PROCEDURE HelloWorld()

BEGIN

SELECT 'Hello World'

END//

才认为语句结束, 然后 mysql 尝试去 编译这个存储过程。 检查语法有效性等处理。

由于前面 存储过程创建好了。

我不希望后面的语句, 还是继续用 // 结束

否则每次

select * from ... where .. //

也是很麻烦的

这种情况下, 我创建完存储过程以后, 使用

DELIMITER

恢复默认值, 也就是继续把 分号, 作为 语句的结束。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7175889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存