如何檢測 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)

更新於:2019 年 12 月 11 日

147 次瀏覽

開啟你的 職業生涯

完成課程即可獲得認證

開始使用
廣告