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

MySQL数据库

开发平台:

Visual C++

  1. DROP TABLE IF EXISTS t1;
  2. CREATE TABLE t1 (a INT, b INT, c INT, UNIQUE (A), UNIQUE(B));
  3. INSERT t1 VALUES (1,2,10), (3,4,20);
  4. INSERT t1 VALUES (5,6,30) ON DUPLICATE KEY UPDATE c=c+100;
  5. SELECT * FROM t1;
  6. a b c
  7. 1 2 10
  8. 3 4 20
  9. 5 6 30
  10. INSERT t1 VALUES (5,7,40) ON DUPLICATE KEY UPDATE c=c+100;
  11. SELECT * FROM t1;
  12. a b c
  13. 1 2 10
  14. 3 4 20
  15. 5 6 130
  16. INSERT t1 VALUES (8,4,50) ON DUPLICATE KEY UPDATE c=c+1000;
  17. SELECT * FROM t1;
  18. a b c
  19. 1 2 10
  20. 3 4 1020
  21. 5 6 130
  22. INSERT t1 VALUES (1,4,60) ON DUPLICATE KEY UPDATE c=c+10000;
  23. SELECT * FROM t1;
  24. a b c
  25. 1 2 10010
  26. 3 4 1020
  27. 5 6 130
  28. INSERT t1 VALUES (1,9,70) ON DUPLICATE KEY UPDATE c=c+100000, b=4;
  29. ERROR 23000: Duplicate entry '4' for key 2
  30. SELECT * FROM t1;
  31. a b c
  32. 1 2 10010
  33. 3 4 1020
  34. 5 6 130
  35. TRUNCATE TABLE t1;
  36. INSERT t1 VALUES (1,2,10), (3,4,20);
  37. INSERT t1 VALUES (5,6,30), (7,4,40), (8,9,60) ON DUPLICATE KEY UPDATE c=c+100;
  38. SELECT * FROM t1;
  39. a b c
  40. 1 2 10
  41. 3 4 120
  42. 5 6 30
  43. 8 9 60
  44. INSERT t1 SET a=5 ON DUPLICATE KEY UPDATE b=0;
  45. SELECT * FROM t1;
  46. a b c
  47. 1 2 10
  48. 3 4 120
  49. 5 0 30
  50. 8 9 60
  51. INSERT t1 VALUES (2,1,11), (7,4,40) ON DUPLICATE KEY UPDATE c=c+VALUES(a);
  52. SELECT *, VALUES(a) FROM t1;
  53. a b c VALUES(a)
  54. 1 2 10 NULL
  55. 3 4 127 NULL
  56. 5 0 30 NULL
  57. 8 9 60 NULL
  58. 2 1 11 NULL
  59. explain extended SELECT *, VALUES(a) FROM t1;
  60. id select_type table type possible_keys key key_len ref rows Extra
  61. 1 SIMPLE t1 ALL NULL NULL NULL NULL 5
  62. Warnings:
  63. Note 1003 select test.t1.a AS `a`,test.t1.b AS `b`,test.t1.c AS `c`,values(test.t1.a) AS `VALUES(a)` from test.t1
  64. explain extended select * from t1 where values(a);
  65. id select_type table type possible_keys key key_len ref rows Extra
  66. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
  67. Warnings:
  68. Note 1003 select test.t1.a AS `a`,test.t1.b AS `b`,test.t1.c AS `c` from test.t1
  69. DROP TABLE t1;
  70. create table t1(a int primary key, b int);
  71. insert into t1 values(1,1),(2,2),(3,3),(4,4),(5,5);
  72. select * from t1;
  73. a b
  74. 1 1
  75. 2 2
  76. 3 3
  77. 4 4
  78. 5 5
  79. insert into t1 values(4,14),(5,15),(6,16),(7,17),(8,18)
  80. on duplicate key update b=b+10;
  81. affected rows: 7
  82. info: Records: 5  Duplicates: 2  Warnings: 0
  83. select * from t1;
  84. a b
  85. 1 1
  86. 2 2
  87. 3 3
  88. 4 14
  89. 5 15
  90. 6 16
  91. 7 17
  92. 8 18
  93. replace into t1 values(5,25),(6,26),(7,27),(8,28),(9,29);
  94. affected rows: 9
  95. info: Records: 5  Duplicates: 4  Warnings: 0
  96. select * from t1;
  97. a b
  98. 1 1
  99. 2 2
  100. 3 3
  101. 4 14
  102. 5 25
  103. 6 26
  104. 7 27
  105. 8 28
  106. 9 29
  107. drop table t1;
  108. CREATE TABLE t1 (a INT, b INT, c INT, UNIQUE (A), UNIQUE(B));
  109. INSERT t1 VALUES (1,2,10), (3,4,20);
  110. INSERT t1 SELECT 5,6,30 FROM DUAL ON DUPLICATE KEY UPDATE c=c+100;
  111. SELECT * FROM t1;
  112. a b c
  113. 1 2 10
  114. 3 4 20
  115. 5 6 30
  116. INSERT t1 SELECT 5,7,40 FROM DUAL ON DUPLICATE KEY UPDATE c=c+100;
  117. SELECT * FROM t1;
  118. a b c
  119. 1 2 10
  120. 3 4 20
  121. 5 6 130
  122. INSERT t1 SELECT 8,4,50 FROM DUAL ON DUPLICATE KEY UPDATE c=c+1000;
  123. SELECT * FROM t1;
  124. a b c
  125. 1 2 10
  126. 3 4 1020
  127. 5 6 130
  128. INSERT t1 SELECT 1,4,60 FROM DUAL ON DUPLICATE KEY UPDATE c=c+10000;
  129. SELECT * FROM t1;
  130. a b c
  131. 1 2 10010
  132. 3 4 1020
  133. 5 6 130
  134. INSERT t1 SELECT 1,9,70 FROM DUAL ON DUPLICATE KEY UPDATE c=c+100000, b=4;
  135. ERROR 23000: Duplicate entry '4' for key 2
  136. SELECT * FROM t1;
  137. a b c
  138. 1 2 10010
  139. 3 4 1020
  140. 5 6 130
  141. TRUNCATE TABLE t1;
  142. INSERT t1 VALUES (1,2,10), (3,4,20);
  143. CREATE TABLE t2 (a INT, b INT, c INT, d INT);
  144. INSERT t2 VALUES (5,6,30,1), (7,4,40,1), (8,9,60,1);
  145. INSERT t2 VALUES (2,1,11,2), (7,4,40,2);
  146. INSERT t1 SELECT a,b,c FROM t2 WHERE d=1 ON DUPLICATE KEY UPDATE c=t1.c+100;
  147. SELECT * FROM t1;
  148. a b c
  149. 1 2 10
  150. 3 4 120
  151. 5 6 30
  152. 8 9 60
  153. INSERT t1 SET a=5 ON DUPLICATE KEY UPDATE b=0;
  154. SELECT * FROM t1;
  155. a b c
  156. 1 2 10
  157. 3 4 120
  158. 5 0 30
  159. 8 9 60
  160. INSERT t1 SELECT a,b,c FROM t2 WHERE d=2 ON DUPLICATE KEY UPDATE c=c+VALUES(a);
  161. ERROR 23000: Column 'c' in field list is ambiguous
  162. INSERT t1 SELECT a,b,c FROM t2 WHERE d=2 ON DUPLICATE KEY UPDATE c=t1.c+VALUES(t1.a);
  163. SELECT *, VALUES(a) FROM t1;
  164. a b c VALUES(a)
  165. 1 2 10 NULL
  166. 3 4 127 NULL
  167. 5 0 30 NULL
  168. 8 9 60 NULL
  169. 2 1 11 NULL
  170. DROP TABLE t1;
  171. DROP TABLE t2;
  172. create table t1 (a int not null unique) engine=myisam;
  173. insert into t1 values (1),(2);
  174. insert ignore into t1 select 1 on duplicate key update a=2;
  175. select * from t1;
  176. a
  177. 1
  178. 2
  179. insert ignore into t1 select a from t1 as t2 on duplicate key update a=t1.a+1 ;
  180. select * from t1;
  181. a
  182. 1
  183. 3
  184. insert into t1 select 1 on duplicate key update a=2;
  185. select * from t1;
  186. a
  187. 2
  188. 3
  189. insert into t1 select a from t1 on duplicate key update a=a+1 ;
  190. ERROR 23000: Column 'a' in field list is ambiguous
  191. insert ignore into t1 select a from t1 on duplicate key update a=t1.a+1 ;
  192. ERROR 23000: Column 't1.a' in field list is ambiguous
  193. drop table t1;
  194. CREATE TABLE t1 (
  195. a BIGINT(20) NOT NULL DEFAULT 0,
  196. PRIMARY KEY  (a)
  197. ) ENGINE=MyISAM;
  198. INSERT INTO t1 ( a ) SELECT 0 ON DUPLICATE KEY UPDATE a = a + VALUES (a) ;
  199. DROP TABLE t1;