0
私は成功裏に回答を検索しました。私はトランザクションを理解/学習しようとしています。何かがうまくいかない。私はコマンドラインから次のことをしています。ここでシナリオは次のとおりです。MySQL開始トランザクションがinnoDBエンジンと連携していません
MySQL [bank]> select * from account;
+---------+---------+---------+------+
| acctnum | name | balance | id |
+---------+---------+---------+------+
| 100 | Andy | 0.00 | 10 |
| 200 | Allison | 50.00 | 20 |
| 300 | Alex | 0.00 | 30 |
| 400 | Joe | 0.00 | 40 |
+---------+---------+---------+------+
4 rows in set (0.00 sec)
MySQL [bank]> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
MySQL [bank]> start transaction;
Query OK, 0 rows affected (0.00 sec)
MySQL [bank]> update account set id=10 where acctnum=200;
ERROR 1062 (23000): Duplicate entry '10' for key 'id'
MySQL [bank]> update account set balance=10 where acctnum=200;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MySQL [bank]> commit;
Query OK, 0 rows affected (0.00 sec)
MySQL [bank]> select * from account;
+---------+---------+---------+------+
| acctnum | name | balance | id |
+---------+---------+---------+------+
| 100 | Andy | 0.00 | 10 |
| 200 | Allison | 10.00 | 20 |
| 300 | Alex | 0.00 | 30 |
| 400 | Joe | 0.00 | 40 |
+---------+---------+---------+------+
4 rows in set (0.00 sec)
ご覧の通り、私は意図的に間違った最初のアップデートを行い、2回目の更新が許可されていないとバランスが10に任意のアイデアを更新されていないはずですか、私が何かをしないのです期待しますか?前もって感謝します。