为了账号安全,请及时绑定邮箱和手机立即绑定

请问当用DELIMITER修改了结束符为//后,函数体内的引号起到的是什么作用呢?

是不是再修改之前之所以会有问题,是因为引号具有两个作用呢?

比如一是代表mysql语句执行完。

那修改以后的引号是什么意思呢

正在回答

2 回答


我操作了几遍之后感觉是这样理解的:复合函数要达到插入数据之后再返回最后插入数据的id的这样的一个多条sql语句的复合效果,必须在函数体中写入多条sql语句,但是不同的sql语句在运行时需要使用;结尾,所以创建复合函数时势必要加入;保证该语句的执行,可这样又会使自己的创建进程结束,这产生了一个冲突,所以这个时候有一种折中的方法,就是先修改默认结束符号,将各条sql语句写入函数体之后再把默认结束符改回;,这样就顺利解决了冲突问题

0 回复 有任何疑惑可以回复我~
#1

Ray_Loy

改回来默认结束符之后函数运行正常,同时顺利解决了冲突问题,只是可能比较繁琐,改来改去违背了敏捷开发的原则,很可能这就是现在自定义函数的使用率低原因之一
2019-08-19 回复 有任何疑惑可以回复我~

我觉得还是起到的是一种分隔符的作用  并且这种作用好像只有它能做到   我试过, 和空格 都会报错 你可以自己尝试一下

我是这样理解的 希望能帮到你

0 回复 有任何疑惑可以回复我~
#1

阿Dine

还有字面上的意思就是 在其他的编程语言里 大多数都是用“;”来表示一句语言的结束
2019-02-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       397028    人
  • 解答问题       3350    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

请问当用DELIMITER修改了结束符为//后,函数体内的引号起到的是什么作用呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信