我想弄清楚当使用更新重复密钥时,插入内容的值顺序是否会影响 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锁定键,无论字段顺序如何。