我的MySQL版本是5.7.15,我尝试使用MySQL客户端执行以下语句(SELECT语句通常花费10ms以上的时间):
set max_execution_time=10;
select * from mydb.t_mytable order by rand() limit 10;
在max_execution_time之后,SELECT语句被中止,并报告错误:
错误3024(HY000):查询执行被中断,最大语句 超过执行时间
但是当我使用具有相同语句的cpp代码函数mysql_real_query()
时,在max_execution_time之后中止并且没有引发错误,mysql_real_query()返回0,mysql_errno()
返回0,而mysql_error()
返回空字符串。
为什么MySQL客户端和mysql_real_query()函数之间有区别?
是否可以通过cpp代码捕获 “ ERROR 3024(HY000)” 的错误?