Mysql编程中的怪现象
在编写存储过程时遇到了一个怪问题,现写出来希望对大家有所帮助。
在存储过程中定义了一个游标:
declare cur1 cursor for select ColumnCode,ColumnDataType from sys_columndictionary where TableID=tableGuID order by ColumnCode;
执行的时候总是报“表sys_columndictionary”不存在,数据库中确实存在sys_columndictionary表,这里如果换成别的表也会报类似的错误。在网上找了半天也没有满意的答案,这个问题困扰了我许久,都开始怀疑是不是mysql出了问题,仔细想想mysql不可能出问题呀,一不小心换了个写法,在表名称前加上数据库名称即(我的数据库名称是db):
declare cur1 cursor for select ColumnCode,ColumnDataType from db.sys_columndictionary where TableID=tableGuID order by ColumnCode;
再来执行一下居然对了。这个现象太奇怪了,如果大家都知道这个现象,那就见笑了,本人第一次用mysql。