如何檢測 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)
使用 insert 命令在表中插入一些記錄 -
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 row in set (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 row in set (0.00 sec)
廣告