Categories:
.NET (357)
C (330)
C++ (183)
CSS (84)
DBA (2)
General (7)
HTML (4)
Java (574)
JavaScript (106)
JSP (66)
Oracle (114)
Perl (46)
Perl (1)
PHP (1)
PL/SQL (1)
RSS (51)
Software QA (13)
SQL Server (1)
Windows (1)
XHTML (173)
Other Resources:
How To Experiment Dead Locks
How To Experiment Dead Locks? - MySQL FAQs - Transaction Management: Commit or Rollback
✍: FYIcenter.com
If you want to have some experience with dead locks, you can create two windows running two mysql transactions in two sessions at the REPEATABLE READ transaction isolation level. Then run some UPDATE statements as shown in the tutorial exercise below:
(session 1) mysql> SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; Query OK, 0 rows affected (0.00 sec) mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE fyi_links SET notes='Lock1' where id=101; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 (Exclusive lock (X) placed on row id=101)
Switch to session 2:
(session 2) mysql> SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; Query OK, 0 rows affected (0.00 sec) mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE fyi_links SET notes='Lock2' where id=110; Query OK, 1 row affected (0.10 sec) Rows matched: 1 Changed: 1 Warnings: 0 (Exclusive lock (X) placed on row id=110) mysql> UPDATE fyi_links SET notes='Good1' where id=101; (Blocked to wait for exclusive lock (X) on row id=101)
Switch to session 1:
(session 1) mysql> UPDATE fyi_links SET notes='Good2' where id=110; (Tried to wait for exclusive lock (X) row id=110) ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction (Transaction terminated with a rollback)
Switch to session 2:
(session 2) (Exclusive lock (X) on row id=101 released) (Block is removed on this transaction is removed) Query OK, 1 row affected (10.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
2007-05-09, 5260👍, 0💬
Popular Posts:
How to create arrays in JavaScript? We can declare an array like this var scripts = new Array(); We ...
How do you pass control from one JSP page to another? Use the following ways to pass control of a re...
How To Run a JUnit Test Class? A JUnit test class usually contains a number of test methods. You can...
How To Enter Numeric Values as HEX Numbers? - MySQL FAQs - Introduction to SQL Basics If you want to...
What Happens to Indexes If You Drop a Table? - Oracle DBA FAQ - Managing Oracle Table Indexes If you...