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

MySQL数据库

开发平台:

Visual C++

  1. stop slave;
  2. drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
  3. reset master;
  4. reset slave;
  5. drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
  6. start slave;
  7. -------- Test for BUG#9361 --------
  8. CREATE TABLE t1 (
  9. a int unsigned not null auto_increment primary key,
  10. b int unsigned
  11. ) ENGINE=MyISAM;
  12. CREATE TABLE t2 (
  13. a int unsigned not null auto_increment primary key,
  14. b int unsigned
  15. ) ENGINE=MyISAM;
  16. INSERT INTO t1 VALUES (NULL, 0);
  17. INSERT INTO t1 SELECT NULL, 0 FROM t1;
  18. INSERT INTO t2 VALUES (NULL, 0), (NULL,1);
  19. SELECT * FROM t1 ORDER BY a;
  20. a b
  21. 1 0
  22. 2 0
  23. SELECT * FROM t2 ORDER BY a;
  24. a b
  25. 1 0
  26. 2 1
  27. UPDATE t2, (SELECT a FROM t1) AS t SET t2.b = t.a+5 ;
  28. SELECT * FROM t1 ORDER BY a;
  29. a b
  30. 1 0
  31. 2 0
  32. SELECT * FROM t2 ORDER BY a;
  33. a b
  34. 1 6
  35. 2 6
  36. SELECT * FROM t1 ORDER BY a;
  37. a b
  38. 1 0
  39. 2 0
  40. SELECT * FROM t2 ORDER BY a;
  41. a b
  42. 1 6
  43. 2 6
  44. drop table t1,t2;
  45. -------- Test 1 for BUG#9361 --------
  46. DROP TABLE IF EXISTS t1;
  47. DROP TABLE IF EXISTS t2;
  48. CREATE TABLE t1 (
  49. a1  char(30),
  50. a2  int,
  51. a3  int,
  52. a4  char(30),
  53. a5  char(30)
  54. );
  55. CREATE TABLE t2 (
  56. b1  int,
  57. b2  char(30)
  58. );
  59. INSERT INTO t1 VALUES ('Yes', 1, NULL, 'foo', 'bar');
  60. INSERT INTO t2 VALUES (1, 'baz');
  61. UPDATE t1 a, t2 
  62. SET    a.a1 = 'No' 
  63. WHERE  a.a2 = 
  64. (SELECT  b1 
  65. FROM    t2 
  66. WHERE   b2 = 'baz') 
  67. AND a.a3 IS NULL 
  68. AND a.a4 = 'foo' 
  69. AND a.a5 = 'bar';
  70. SELECT * FROM t1;
  71. a1 a2 a3 a4 a5
  72. No 1 NULL foo bar
  73. SELECT * FROM t2;
  74. b1 b2
  75. 1 baz
  76. DROP TABLE t1, t2;
  77. -------- Test 2 for BUG#9361 --------
  78. DROP TABLE IF EXISTS t1;
  79. DROP TABLE IF EXISTS t2;
  80. DROP TABLE IF EXISTS t3;
  81. CREATE TABLE t1 (
  82. i   INT,
  83. j   INT,
  84. x   INT,
  85. y   INT,
  86. z   INT
  87. );
  88. CREATE TABLE t2 (
  89. i   INT,
  90. k   INT,
  91. x   INT,
  92. y   INT,
  93. z   INT
  94. );
  95. CREATE TABLE t3 (
  96. j   INT,
  97. k   INT,
  98. x   INT,
  99. y   INT,
  100. z   INT
  101. );
  102. INSERT INTO t1 VALUES ( 1, 2,13,14,15);
  103. INSERT INTO t2 VALUES ( 1, 3,23,24,25);
  104. INSERT INTO t3 VALUES ( 2, 3, 1,34,35), ( 2, 3, 1,34,36);
  105. UPDATE      t1 AS a  
  106. INNER JOIN  t2 AS b 
  107. ON a.i = b.i
  108. INNER JOIN  t3 AS c 
  109. ON a.j = c.j  AND  b.k = c.k
  110. SET         a.x = b.x, 
  111. a.y = b.y, 
  112. a.z = (
  113. SELECT  sum(z) 
  114. FROM    t3
  115. WHERE   y = 34 
  116. WHERE       b.x = 23;
  117. SELECT * FROM t1;
  118. i j x y z
  119. 1 2 23 24 71
  120. DROP TABLE t1, t2, t3;
  121. DROP TABLE IF EXISTS t1;
  122. Warnings:
  123. Note 1051 Unknown table 't1'
  124. DROP TABLE IF EXISTS t2;
  125. Warnings:
  126. Note 1051 Unknown table 't2'
  127. CREATE TABLE t1 (
  128. idp int(11) NOT NULL default '0',
  129. idpro int(11) default NULL,
  130. price decimal(19,4) default NULL,
  131. PRIMARY KEY (idp)
  132. );
  133. CREATE TABLE t2 (
  134. idpro int(11) NOT NULL default '0',
  135. price decimal(19,4) default NULL,
  136. nbprice int(11) default NULL,
  137. PRIMARY KEY (idpro)
  138. );
  139. INSERT INTO t1 VALUES 
  140. (1,1,'3.0000'),
  141. (2,2,'1.0000'),
  142. (3,1,'1.0000'),
  143. (4,1,'4.0000'),
  144. (5,3,'2.0000'),
  145. (6,2,'4.0000');
  146. INSERT INTO t2 VALUES 
  147. (1,'0.0000',0),
  148. (2,'0.0000',0),
  149. (3,'0.0000',0);
  150. update 
  151. t2
  152. join 
  153. ( select    idpro, min(price) as min_price, count(*) as nbr_price
  154. from      t1 
  155. where     idpro>0 and price>0 
  156. group by  idpro
  157. ) as table_price
  158. on   t2.idpro = table_price.idpro 
  159. set  t2.price = table_price.min_price, 
  160. t2.nbprice = table_price.nbr_price;
  161. select "-- MASTER AFTER JOIN --" as "";
  162. -- MASTER AFTER JOIN --
  163. select * from t1;
  164. idp idpro price
  165. 1 1 3.0000
  166. 2 2 1.0000
  167. 3 1 1.0000
  168. 4 1 4.0000
  169. 5 3 2.0000
  170. 6 2 4.0000
  171. select * from t2;
  172. idpro price nbprice
  173. 1 1.0000 3
  174. 2 1.0000 2
  175. 3 2.0000 1
  176. select "-- SLAVE AFTER JOIN --" as "";
  177. -- SLAVE AFTER JOIN --
  178. select * from t1;
  179. idp idpro price
  180. 1 1 3.0000
  181. 2 2 1.0000
  182. 3 1 1.0000
  183. 4 1 4.0000
  184. 5 3 2.0000
  185. 6 2 4.0000
  186. select * from t2;
  187. idpro price nbprice
  188. 1 1.0000 3
  189. 2 1.0000 2
  190. 3 2.0000 1