MySql - Seq_in_index,更新重复键和死锁

时间:2013-05-01 05:13:17

标签: mysql triggers deadlock on-duplicate-key

我想弄清楚当使用更新重复密钥时,插入内容的值顺序是否会影响 Seq_in_index ,我有一个死锁,我正在尝试调试。

所以我们有例如

为每个视图获取插入的视图表,它具有为插入,更新和删除设置的触发器,影响其他5个表

由触发器影响的其中一个表被编入索引

+--------+------------+----------+--------------+-------------+------------+
| Table  | Non_unique | Key_name | Seq_in_index | Column_name | Index_type |
+--------+------------+----------+--------------+-------------+------------+
| tableA |          0 | PRIMARY  |            1 | field1      | BTREE      |
| tableA |          0 | PRIMARY  |            2 | field2      | BTREE      |
+--------+------------+----------+--------------+-------------+------------+

现在我要问的是插入触发器是否像这样运行

insert into tableA (field1, field2) vals (...) on duplicate key update ...

并且更新触发器在字段顺序翻转的同时运行

 insert into tableA (field2,field1) vals (...) on duplicate key update ...

这可能导致像

这样的死锁
connection 1: locks key(1), locks key(2);
connection 2: locks key(2), locks key(1);

或者它会通过Seq_in_index锁定键,无论字段顺序如何。

0 个答案:

没有答案
相关问题