对于存储过程LoadPlayerOtherData:
BEGIN
# 不要在中间写入,每次添加都必须在最后面
SELECT * FROM playeritemdata WHERE accountName = accName;
SELECT * FROM playerequipdata WHERE accountName = accName;
SELECT * FROM playerchapterdata WHERE accountName = accName;
END
每次调用LoadPlayerOtherData时,都会返回三个结果(三个表均存在)。
每一个结果就是相应的SELECT语句的值,结果按照存储过程中SELECT语句的先后顺序依次给出。
就算某个SELECT语句没有查找到相关数据,结果也都是三个。
编码过程中,遇到一个奇怪的bug,如果给出一个错误的表名,结果居然不是正确的3个,如下修改:
BEGIN
# 不要在中间写入,每次添加都必须在最后面
SELECT * FROM playeritemdata WHERE accountName = accName;
SELECT * FROM playerequipdata WHERE accountName = accName;
SELECT * FROM playerchapterdata WHERE accountName = accName;
SELECT * FROM playererrordata WHERE accountName = accName; # 不存在的表名playererrordata
END
运行修改后的LoadPlayerOtherData,结果变成了2个:
可能是最后一个SELECT语句错误导致倒数第二个出现问题。
程序中调用该存储过程,不会报错。当使用返回的结果时,程序直接退出,无任何报错或输出信息。