Ինչպե՞ս կարող եմ հայտնաբերել, արդյոք ON UPDATE իրադարձությունը գործարկվել է հարցումով MySQL-ում:


Դուք կարող եք հայտնաբերել 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)

Այժմ դուք կարող եք ստուգել, որ թարմացման իրադարձությունը գործարկվել է վերը նշված հարցման օգնությամբ.

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)

Այժմ դուք կարող եք ստուգել, որ թարմացման իրադարձությունը գործարկվել է վերը նշված հարցման օգնությամբ.

mysql> select row_count();

Սա կստեղծի հետևյալ արդյունքը.

+-------------+
| row_count() |
+-------------+
|           2 |
+-------------+
1 row in set (0.00 sec)