杀死 InnoDB 进程会导致查询回滚吗?

Does killing an InnoDB process result in ROLLBACK of query?

MySQL 版本 5.5.28

我不小心 运行 一个没有 WHERE 子句的 UPDATE 查询。

然后我使用 kill 202085 在 MySQL 中终止了进程。

这是否导致自动回滚?或者我是否需要担心部分执行的查询?

编辑:根据 SHOW PROCESSLIST,我的查询是 "SENDING DATA"。

编辑:这是没有 WHERE 子句的查询。

UPDATE products t1,
`raw_table` t2
SET t1.`model` = t2.`model`
, t1.`sku` = CONCAT('ABC-',t2.`model`)

没有任何 WHERE 子句,UPDATE 会做什么是个谜,因为我没有指定任何关系。

添加 WHERE 子句后,我的查询立即执行并按预期更新了大约 250 行。

WHERE t1.`model` = t2.`old_model`
AND t1.`vendor_id` = 53

是的,它回滚了。但这取决于查询的阶段。如果它已提交更改,它不会回滚。如果您设法在操作之前终止查询,那么它将回滚。