您可以借助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)