innodb-deadlock.result
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. drop table if exists t1,t2;
  2. create table t1 (id integer, x integer) engine=INNODB;
  3. insert into t1 values(0, 0);
  4. set autocommit=0;
  5. SELECT * from t1 where id = 0 FOR UPDATE;
  6. id x
  7. 0 0
  8. set autocommit=0;
  9. update t1 set x=2 where id = 0;
  10. update t1 set x=1 where id = 0;
  11. select * from t1;
  12. id x
  13. 0 1
  14. commit;
  15. commit;
  16. select * from t1;
  17. id x
  18. 0 2
  19. commit;
  20. drop table t1;
  21. create table t1 (id integer, x integer) engine=INNODB;
  22. create table t2 (b integer, a integer) engine=INNODB;
  23. insert into t1 values(0, 0), (300, 300);
  24. insert into t2 values(0, 10), (1, 20), (2, 30);
  25. commit;
  26. set autocommit=0;
  27. select * from t2;
  28. b a
  29. 0 10
  30. 1 20
  31. 2 30
  32. update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE);
  33. select * from t2;
  34. b a
  35. 0 100
  36. 1 20
  37. 2 30
  38. select * from t1;
  39. id x
  40. 0 0
  41. 300 300
  42. set autocommit=0;
  43. update t1 set x=2 where id = 0;
  44. update t1 set x=1 where id = 0;
  45. select * from t1;
  46. id x
  47. 0 1
  48. 300 300
  49. commit;
  50. commit;
  51. select * from t1;
  52. id x
  53. 0 2
  54. 300 300
  55. commit;
  56. drop table t1, t2;
  57. create table t1 (id integer, x integer) engine=INNODB;
  58. create table t2 (b integer, a integer) engine=INNODB;
  59. insert into t1 values(0, 0), (300, 300);
  60. insert into t2 values(0, 0), (1, 20), (2, 30);
  61. commit;
  62. select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE;
  63. a b
  64. 0 0
  65. 20 1
  66. 30 2
  67. 300 300
  68. select * from t2;
  69. b a
  70. 0 0
  71. 1 20
  72. 2 30
  73. select * from t1;
  74. id x
  75. 0 0
  76. 300 300
  77. update t2 set a=2 where b = 0;
  78. select * from t2;
  79. b a
  80. 0 2
  81. 1 20
  82. 2 30
  83. update t1 set x=2 where id = 0;
  84. update t1 set x=1 where id = 0;
  85. select * from t1;
  86. id x
  87. 0 1
  88. 300 300
  89. commit;
  90. commit;
  91. select * from t1;
  92. id x
  93. 0 2
  94. 300 300
  95. commit;
  96. drop table t1, t2;