MySQL 如何检测MySQL中使用查询时是否触发了ON UPDATE事件?
您可以利用row_count()进行检测。如果row_count()返回1,则表示它是一条新记录。如果返回2,则表示使用查询触发了ON UPDATE事件。以下是语法 −
select row_count();
让我们首先创建一个表 −
mysql> create table DemoTable1512
-> (
-> Value int ,
-> UNIQUE(Value)
-> );
Query OK, 0 rows affected (0.60 sec)
使用插入命令向表中插入一些记录 −
mysql> insert into DemoTable1512 values(90) on duplicate key update Value=Value+10;
Query OK, 1 row affected (0.09 sec)
现在,您可以通过上述查询来检查on update事件是否被触发−
mysql> select row_count();
它将生成以下输出 −
+-------------+
| row_count() |
+-------------+
| 1 |
+-------------+
1 行记录(0.00 sec)
它返回1,表示没有。
现在,您可以使用insert命令再次将相同的记录插入表中 −
mysql> insert into DemoTable1512 values(90) on duplicate key update Value=Value+10;
Query OK, 2 rows affected (0.12 sec)
现在,您可以通过上述查询来检查on update事件是否被触发−
mysql> select row_count();
它将生成以下输出 −
+-------------+
| row_count() |
+-------------+
| 2 |
+-------------+
1 行记录(0.00 sec)
阅读更多:MySQL 教程