我将我的 PhpMyAdmin 数据库引擎从 MyISAM 更新为 INNODB 以允许回滚。
这是我的 SQL 查询:
START TRANSACTION;
UPDATE jkm_content SET state=0 WHERE title IN ('title-1','title2');
结果:
start transaction;# MySQL returned an empty result set (i.e. zero
rows).
UPDATE jkm_content SET state=1 WHERE title IN ('title-1','title2');# 2 rows affected.
1)因此该语句通知我有 2 行受到影响,但更改没有出现在任何地方(既不在我的数据库中也不在网站中)。我虽然start transaction
允许我可视化更改(在临时数据库中),然后如果我我很满意我“提交”了查询。(我知道我需要commit
更新数据库,但如果我commit
更改将是永久性的)。
2)然后我不明白rollback
是否在提交之前看不到效果。这两个查询有什么区别:
START TRANSACTION;
UPDATE jkm_content SET state=0 WHERE title IN ('title-1','title2');
和
START TRANSACTION;
UPDATE jkm_content SET state=0 WHERE title IN ('title-1','title2');
ROLLBACK;
3)如果我做对了,这些功能都是一样的:
START TRANSACTION
BEGIN
BEGIN WORK