MySQL 触发警告

标签 mysql triggers warnings

我正在使用 LOAD DATA LOCAL INFILE 将文件上传到 MySQL 表。 由于此文件是由用户创建的,因此它可能包含大量不一致的数据和错误的格式。 目前我正在使用以下代码捕获这些警告:

if (mysqli_warning_count($conn)) { 
  $e = mysqli_get_warnings($conn); 
  do { 
    $conn->query("CALL import_warning($id, '$e->errno', '$e->message');"; 
  } while ($e->next()); 
}

有没有办法在 MySQL 中执行此操作,例如警告时的触发器?

最佳答案

是的,也不是。

mysqli_get_warnings() 函数产生与 show warnings 相同的输出MySQL 语句。因此,有一种方法可以从纯 sql 代码中获取警告列表。但是,MySQL 处理 show 语句的方式与简单的 select 不同。

不幸的是,这意味着您无法在存储过程中正确处理任何 show 语句的结果集,因此您无法在导入后正确记录警告。

关于MySQL 触发警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44776710/

相关文章:

mysql - 获取不同类型和名称的特定ID mysql 的总和

C# 如何在一天中的特定时间触发事件?

xaml - 通过绑定(bind)更改 TextBox 文本时启动 Storyboard

javac 和 scalac 警告仅针对特定类型的错误

mysql - 我在使用 sql 创建触发器的代码中存在语法错误。我使用mysql版本14.14

mysql - 我可以通过移动文件来传输mysql数据库吗?

java - 对非标准浏览器显示警告

C++ Visual Studio 2010 C4717 编译器警告在代码的一部分中,但在另一部分中没有

php - laravel 5.1 Eloquent 查询

sql - 使用触发器的 SP 中的 @@IDENTITY 是否会导致竞争条件?