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

复合函数体中有两个username,mysql是怎么分清楚的?

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);   

 一个username 是命令 后面那个 username是参数 两个重名了,为什么MySQL也能分清楚不报错啊?

正在回答

1 回答

因为第一个username之检查test表中的列名,values后面检测的参数值,两者不在一个检测空间内,没有冲突。

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

knock桃子 提问者

哦,,,还有这种操作,厉害了
2017-06-11 回复 有任何疑惑可以回复我~
#2

knock桃子 提问者

那如果检查test表中的列名没有检查到username 那会去检测参数值吗?
2017-06-11 回复 有任何疑惑可以回复我~
#3

慕粉0852047332 回复 knock桃子 提问者

如果test中没有检查到username列名,函数会报错,无法插入
2017-06-13 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

复合函数体中有两个username,mysql是怎么分清楚的?

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