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

正在回答

3 回答

目的:在test表中插入新记录,并返回它的id

代码:

CREATE FUNCTION adduser(username VARCHAR(20))

RETURNS INT UNSIGNED

RETURN 

INSERT test(username)  VALUES(username);

RETURN LAST_INSERT_ID();

//以上代码在倒二句会被系统认为已经输入完毕。所以我们要用其他的分隔符来代替‘;’

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

应该不难理解呀,首先你看懂老师的例子没有?

CREATE FUNCTION adduser(username VARCHAR(20))

RETURNS INT UNSIGNED

BEGIN

INSERT test(username)  VALUES(username);

RETURN LAST_INSERT_ID();

END

//

如果你不将语句执行的结束标志更改为其它符号,还是“;”的话,那你每次写这个函数时,是不是写到INSERT test(username)  VALUES(username);这一句时就会执行,然后给你报一个错。你永远也生成不了你的自定义函数。当你改了结束标志,生成你的自定义函数之后,你就可以将标志改回来了。


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

应该不难理解呀,首先你看懂老师的例子没有?

CREATE FUNCTION adduser(username VARCHAR(20))

RETURNS INT UNSIGNED

BEGIN

INSERT test(username)  VALUES(username);

RETURN LAST_INSERT_ID();

END

//

如果你不语句执行的结束标志更改,还是“;”的话,那你每次写这个函数时,是不是写到INSERT test(username)  VALUES(username);这一句时就会执行,然后给你报一个错。你永远也生成不了你的自定义函数。当你改了结束标志改了,生成你的自定义函数之后,你就可以将标志改回来了。

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

无敌小哥儿

INSERT test(username) VALUES(username); RETURN LAST_INSERT_ID(); 既然//代替了;的话,那么这两条语句的;代表什么?分号在这里应该没有意义吧?可是去除了这两个分号,就会报错。。
2017-02-04 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为什么要把;换成//?

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