10.12错误标志和函数

可以检查或设置以下标志来改变错误处理期间的行为:

  • 螺纹- > net.report_error

螺纹- > net.report_error被设置在my_message_sql ()如果注册了错误消息。(my_message_sql ()被称为,my_error (),my_printf_error (),my_message ())。

  • 螺纹- > query_error

就像net.report_error,但总是设置为1 inmy_message_sql ()如果错误处理程序未捕获错误。由复制使用,以查看查询是否生成任何类型的错误。

  • 螺纹- > no_warnings_for_error

通常错误也会产生警告。该警告可以通过设置来禁用螺纹- > no_warnings_for_error。(这允许捕获语句生成的所有错误消息)

  • 螺纹- > lex - > current_select - > no_error

这被设置为以防万一插入忽略……选择。在本例中,我们忽略了select生成的所有非致命错误。

  • 螺纹- > is_fatal_error

如果因为出现致命错误而中止当前语句(以及任何多行语句),则设置此值。(例如,存储过程的继续处理程序不应该能够捕捉到这一点)。这是通过mysql_reset_thd_for_next_command ()

  • 螺纹- > abort_on_warning

严格模式标志,这意味着如果收到警告,我们应该中止语句。在域:存储函数将警告级别更改为警告错误。在其他情况下,这个标志主要是用螺纹- > really_abort_on_warning ()确保我们不会在更新非事务性表的过程中中止。

  • 螺纹- > count_cuted_fields

如果设置了,我们将为字段对话生成警告(正常情况为插入/更新/删除)。当在字段之间进行数据内部复制时,这个值主要设置为0,我们不想在任何级别上产生任何转换错误。

  • (thd - >杀

设置的情况下,在连接协议错误或在情况下'杀死'。在这种情况下,我们应该中止查询并终止连接。

误差函数

  • 螺纹- > really_abort_on_warning ()

如果一个警告应该转换为一个错误,这个函数返回1,就像在严格模式下所有表都是事务性的。转换是在中处理的sql_error.cc: push_warning ()

  • 螺纹- > fatal_error ()

如果我们想中止当前语句和任何多行语句,应该调用。

  • 螺纹- > clear_error ()

重置螺纹- > net.report_error螺纹- > query_error