在MySQL中,执行了DELIMITER // 这个语句后分号还有什么作用?

在学习MySQL自定义函数的过程中碰见了下面的代码,整体功能就是为数据表插入记录后返回插入记录的主键id

CREATE FUNCTION adduser(username VARCHAR(20))
    -> RETURNS INT UNSIGNED
    -> BEGIN
    -> INSERT test(username) VALUES(username);
    -> RETURN LAST_INSERT_ID();
    -> END//

在这之前我已经执行了

DELIMITER //

按照我的理解DELIMITER //的意思不是将;用//替换吗,那么在上面的代码中不是只要在END的结尾处用一个//就好了吗,为什么还要在INSERT 和RETURN 语句后面再加上分号呢,这里的分号有什么作用呢?

阅读 3.4k
2 个回答

分号是mysql命令的结束符,DELIMITER是来改变输入结束符的。

INSERT 和RETURN 语句后面再加上分号是为了分割函数/存储过程中的多条语句。要不然你说存储过程中的多条语句用什么分割呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题