Come posso rilevare se l'evento ON UPDATE è stato attivato con la query in MySQL?
Puoi rilevarlo con l'aiuto di row_count(). Se row_count() restituisce 1 significa che è un nuovo record. Se restituisce 2, significa che l'evento ON UPDATE viene attivato con la query. Di seguito è riportata la sintassi:
select row_count();
Creiamo innanzitutto una tabella:
mysql> create table DemoTable1512
-> (
-> Value int ,
-> UNIQUE(Value)
-> );
Query OK, 0 rows affected (0.60 sec)
Inserisci alcuni record nella tabella utilizzando il comando di inserimento:
mysql> insert into DemoTable1512 values(90) on duplicate key update Value=Value+10;
Query OK, 1 row affected (0.09 sec)
Ora puoi verificare che l'evento di aggiornamento sia attivato con l'aiuto della query precedente:
mysql> select row_count();
Ciò produrrà il seguente output:
+-------------+
| row_count() |
+-------------+
| 1 |
+-------------+
1 row in set (0.00 sec)
Restituisce 1 che significa no.
Ora puoi inserire nuovamente gli stessi record nella tabella utilizzando il comando di inserimento:
mysql> insert into DemoTable1512 values(90) on duplicate key update Value=Value+10;
Query OK, 2 rows affected (0.12 sec)
Ora puoi verificare che l'evento di aggiornamento sia attivato con l'aiuto della query precedente:
mysql> select row_count();
Ciò produrrà il seguente output:
+-------------+
| row_count() |
+-------------+
| 2 |
+-------------+
1 row in set (0.00 sec)