如何检测MySQL中的查询是否触发了ON UPDATE事件?

您可以借助row_count()进行检测。如果row_count()返回1,则表示它是新记录。如果返回2,则表示查询触发了ON UPDATE事件。以下是语法-

select row_count();

让我们首先创建一个表-

mysql> create table DemoTable1512
   -> (
   -> Value int ,
   -> UNIQUE(Value)
   -> );

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable1512 values(90) on duplicate key update Value=Value+10;

现在您可以在上述查询的帮助下检查触发on更新事件-

mysql> select row_count();

这将产生以下输出-

+-------------+
| row_count() |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)

返回1表示否。

现在您可以使用insert命令在表中再次插入相同的记录-

mysql> insert into DemoTable1512 values(90) on duplicate key update Value=Value+10;

现在您可以在上述查询的帮助下检查触发on更新事件-

mysql> select row_count();

这将产生以下输出-

+-------------+
| row_count() |
+-------------+
|           2 |
+-------------+
1 row in set (0.00 sec)