Ինչպե՞ս կարող եմ հայտնաբերել, արդյոք 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)