0

我打算使用 PHP 来执行 SQL 案例语句来一次编辑 MySQL 表中的许多行。如果查询失败,是否有可能某些值已更改而其他值未更改?

此示例显示了所涉及的 case 语句类型:

UPDATE person
    SET name = CASE id
        WHEN 1 THEN 'Jim'
        WHEN 2 THEN 'Mike'
        WHEN 3 THEN 'Precious'
    END,
    sex = CASE id
        WHEN 1 THEN 'female'
        WHEN 2 THEN 'male'
        WHEN 3 THEN 'male'
    END
WHERE id IN (1,2,3)
4

1 回答 1

2

交易是您要查找的词。事务是全有或全无的操作。这意味着要么一切都通过并且事务完成,或者某些事情失败并且整个事务被回滚。这样可以防止数据不一致。

如上所述,您的表引擎需要支持事务。InnoDB 在 MySQL 中这样做,而 MyISAM 没有。

于 2012-12-17T15:17:06.113 回答