~ubuntu-branches/ubuntu/trusty/drizzle/trusty

« back to all changes in this revision

Viewing changes to tests/r/pbxt/insert_update.result

  • Committer: Bazaar Package Importer
  • Author(s): Monty Taylor
  • Date: 2010-10-02 14:17:48 UTC
  • mfrom: (1.1.1 upstream)
  • mto: (2.1.17 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20101002141748-m6vbfbfjhrw1153e
Tags: 2010.09.1802-1
* New upstream release.
* Removed pid-file argument hack.
* Updated GPL-2 address to be new address.
* Directly copy in drizzledump.1 since debian doesn't have sphinx 1.0 yet.
* Link to jquery from libjs-jquery. Add it as a depend.
* Add drizzled.8 symlink to the install files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
DROP TABLE IF EXISTS t1, t2;
 
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 'b'
 
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
2       1       11      NULL
 
56
3       4       127     NULL
 
57
5       0       30      NULL
 
58
8       9       60      NULL
 
59
explain extended SELECT *, VALUES(a) FROM t1;
 
60
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
61
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    5       100.00  
 
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    filtered        Extra
 
66
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    5       100.00  Using 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` where values(`test`.`t1`.`a`)
 
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 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 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 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 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 ON DUPLICATE KEY UPDATE c=c+100000, b=4;
 
135
ERROR 23000: Duplicate entry '4' for key 'b'
 
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
2       1       11      NULL
 
167
3       4       127     NULL
 
168
5       0       30      NULL
 
169
8       9       60      NULL
 
170
DROP TABLE t1;
 
171
DROP TABLE t2;
 
172
create table t1 (a int not null unique);
 
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
2
 
178
1
 
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
3
 
183
2
 
184
insert into t1 select 1 on duplicate key update a=2;
 
185
select * from t1;
 
186
a
 
187
3
 
188
1
 
189
2
 
190
insert into t1 select a from t1 on duplicate key update a=a+1 ;
 
191
ERROR 23000: Column 'a' in field list is ambiguous
 
192
insert ignore into t1 select a from t1 on duplicate key update a=t1.a+1 ;
 
193
ERROR 23000: Column 't1.a' in field list is ambiguous
 
194
drop table t1;
 
195
CREATE TEMPORARY TABLE t1 (
 
196
a BIGINT NOT NULL DEFAULT 0,
 
197
PRIMARY KEY  (a)
 
198
) ENGINE=MyISAM;
 
199
INSERT INTO t1 ( a ) SELECT 0 ON DUPLICATE KEY UPDATE a = a + VALUES (a) ;
 
200
DROP TABLE t1;
 
201
CREATE TABLE t1
 
202
(
 
203
a   BIGINT,
 
204
b   BIGINT,
 
205
PRIMARY KEY (a)
 
206
);
 
207
INSERT INTO t1 VALUES (45, 1) ON DUPLICATE KEY UPDATE b =
 
208
IF(VALUES(b) > t1.b, VALUES(b), t1.b);
 
209
SELECT * FROM t1;
 
210
a       b
 
211
45      1
 
212
INSERT INTO t1 VALUES (45, 2) ON DUPLICATE KEY UPDATE b =
 
213
IF(VALUES(b) > t1.b, VALUES(b), t1.b);
 
214
SELECT * FROM t1;
 
215
a       b
 
216
45      2
 
217
INSERT INTO t1 VALUES (45, 1) ON DUPLICATE KEY UPDATE b = 
 
218
IF(VALUES(b) > t1.b, VALUES(b), t1.b);
 
219
SELECT * FROM t1;
 
220
a       b
 
221
45      2
 
222
DROP TABLE t1;
 
223
CREATE TABLE t1 (i INT PRIMARY KEY, j INT);
 
224
INSERT INTO t1 SELECT 1, j;
 
225
ERROR 42S22: Unknown column 'j' in 'field list'
 
226
DROP TABLE t1;
 
227
CREATE TABLE t1 (i INT PRIMARY KEY, j INT);
 
228
CREATE TABLE t2 (a INT, b INT);
 
229
CREATE TABLE t3 (a INT, c INT);
 
230
INSERT INTO t1 SELECT 1, a FROM t2 NATURAL JOIN t3 
 
231
ON DUPLICATE KEY UPDATE j= a;
 
232
DROP TABLE t1,t2,t3;
 
233
CREATE TABLE t1 (i INT PRIMARY KEY, j INT);
 
234
CREATE TABLE t2 (a INT);
 
235
INSERT INTO t1 VALUES (1, 1);
 
236
INSERT INTO t2 VALUES (1), (3);
 
237
INSERT INTO t1 SELECT 1, COUNT(*) FROM t2 ON DUPLICATE KEY UPDATE j= a;
 
238
ERROR 42S22: Unknown column 'a' in 'field list'
 
239
DROP TABLE t1,t2;
 
240
CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL);
 
241
INSERT INTO t1 (a) VALUES (1);
 
242
ERROR HY000: Field 'b' doesn't have a default value
 
243
INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE a = b;
 
244
ERROR HY000: Field 'b' doesn't have a default value
 
245
INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE b = b;
 
246
ERROR HY000: Field 'b' doesn't have a default value
 
247
SELECT * FROM t1;
 
248
a       b
 
249
DROP TABLE t1;
 
250
CREATE TABLE t1 (f1 INT AUTO_INCREMENT PRIMARY KEY,
 
251
f2 VARCHAR(5) NOT NULL UNIQUE);
 
252
INSERT t1 (f2) VALUES ('test') ON DUPLICATE KEY UPDATE f1 = LAST_INSERT_ID(f1);
 
253
SELECT LAST_INSERT_ID();
 
254
LAST_INSERT_ID()
 
255
1
 
256
INSERT t1 (f2) VALUES ('test') ON DUPLICATE KEY UPDATE f1 = LAST_INSERT_ID(f1);
 
257
SELECT LAST_INSERT_ID();
 
258
LAST_INSERT_ID()
 
259
1
 
260
DROP TABLE t1;
 
261
CREATE TABLE `t1` (
 
262
`id` int PRIMARY KEY auto_increment,
 
263
`f1` varchar(10) NOT NULL UNIQUE
 
264
);
 
265
INSERT IGNORE INTO t1 (f1) VALUES ("test1")
 
266
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
 
267
INSERT IGNORE INTO t1 (f1) VALUES ("test1")
 
268
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
 
269
SELECT LAST_INSERT_ID();
 
270
LAST_INSERT_ID()
 
271
1
 
272
SELECT * FROM t1;
 
273
id      f1
 
274
1       test1
 
275
INSERT IGNORE INTO t1 (f1) VALUES ("test2")
 
276
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
 
277
SELECT * FROM t1;
 
278
id      f1
 
279
1       test1
 
280
3       test2
 
281
INSERT IGNORE INTO t1 (f1) VALUES ("test2")
 
282
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
 
283
SELECT LAST_INSERT_ID();
 
284
LAST_INSERT_ID()
 
285
3
 
286
SELECT * FROM t1;
 
287
id      f1
 
288
1       test1
 
289
3       test2
 
290
INSERT IGNORE INTO t1 (f1) VALUES ("test3")
 
291
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
 
292
SELECT LAST_INSERT_ID();
 
293
LAST_INSERT_ID()
 
294
5
 
295
SELECT * FROM t1;
 
296
id      f1
 
297
1       test1
 
298
3       test2
 
299
5       test3
 
300
DROP TABLE t1;
 
301
CREATE TABLE `t1` (
 
302
`id` int PRIMARY KEY auto_increment,
 
303
`f1` varchar(10) NOT NULL UNIQUE
 
304
);
 
305
INSERT IGNORE INTO t1 (f1) VALUES ("test1")
 
306
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
 
307
SELECT LAST_INSERT_ID();
 
308
LAST_INSERT_ID()
 
309
1
 
310
SELECT * FROM t1;
 
311
id      f1
 
312
1       test1
 
313
INSERT IGNORE INTO t1 (f1) VALUES ("test1"),("test4")
 
314
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
 
315
SELECT LAST_INSERT_ID();
 
316
LAST_INSERT_ID()
 
317
2
 
318
SELECT * FROM t1;
 
319
id      f1
 
320
1       test1
 
321
2       test4
 
322
DROP TABLE t1;
 
323
CREATE TABLE `t1` (
 
324
`id` int PRIMARY KEY auto_increment,
 
325
`f1` varchar(10) NOT NULL UNIQUE,
 
326
tim1 timestamp default '2003-01-01 00:00:00' on update current_timestamp
 
327
);
 
328
INSERT INTO t1 (f1) VALUES ("test1");
 
329
SELECT id, f1 FROM t1;
 
330
id      f1
 
331
1       test1
 
332
REPLACE INTO t1 VALUES (null,"test1",null);
 
333
SELECT id, f1 FROM t1;
 
334
id      f1
 
335
2       test1
 
336
DROP TABLE t1;
 
337
CREATE TABLE t1 (
 
338
id INT AUTO_INCREMENT PRIMARY KEY,
 
339
c1 CHAR(1) UNIQUE KEY,
 
340
cnt INT DEFAULT 1
 
341
);
 
342
INSERT INTO t1 (c1) VALUES ('A'), ('B'), ('C');
 
343
SELECT * FROM t1;
 
344
id      c1      cnt
 
345
1       A       1
 
346
2       B       1
 
347
3       C       1
 
348
INSERT  INTO t1 (c1) VALUES ('A'), ('X'), ('Y'), ('Z')
 
349
ON DUPLICATE KEY UPDATE cnt=cnt+1;
 
350
SELECT * FROM t1;
 
351
id      c1      cnt
 
352
2       B       1
 
353
3       C       1
 
354
1       A       2
 
355
4       X       1
 
356
5       Y       1
 
357
6       Z       1
 
358
DROP TABLE t1;
 
359
CREATE TABLE t1 (
 
360
id INT AUTO_INCREMENT PRIMARY KEY,
 
361
c1 INT NOT NULL,
 
362
cnt INT DEFAULT 1
 
363
);
 
364
INSERT INTO t1 (id,c1) VALUES (1,10);
 
365
SELECT * FROM t1;
 
366
id      c1      cnt
 
367
1       10      1
 
368
CREATE TABLE t2 (id INT, c1 INT);
 
369
INSERT INTO t2 VALUES (1,NULL), (2,2);
 
370
INSERT INTO t1 (id,c1) SELECT 1,NULL
 
371
ON DUPLICATE KEY UPDATE c1=NULL;
 
372
ERROR 23000: Column 'c1' cannot be null
 
373
SELECT * FROM t1;
 
374
id      c1      cnt
 
375
1       10      1
 
376
INSERT IGNORE INTO t1 (id,c1) SELECT 1,NULL
 
377
ON DUPLICATE KEY UPDATE c1=NULL, cnt=cnt+1;
 
378
Warnings:
 
379
Warning 1048    Column 'c1' cannot be null
 
380
Error   1048    Column 'c1' cannot be null
 
381
SELECT * FROM t1;
 
382
id      c1      cnt
 
383
1       0       2
 
384
INSERT IGNORE INTO t1 (id,c1) SELECT * FROM t2
 
385
ON DUPLICATE KEY UPDATE c1=NULL, cnt=cnt+1;
 
386
Warnings:
 
387
Warning 1048    Column 'c1' cannot be null
 
388
Error   1048    Column 'c1' cannot be null
 
389
SELECT * FROM t1;
 
390
id      c1      cnt
 
391
1       0       3
 
392
2       2       1
 
393
DROP TABLE t1,t2;
 
394
create table t1(f1 int primary key,
 
395
f2 timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP);
 
396
insert into t1(f1) values(1);
 
397
select @stamp1:=f2 from t1;
 
398
@stamp1:=f2 
 
399
#
 
400
insert into t1(f1) values(1) on duplicate key update f1=1;
 
401
select @stamp2:=f2 from t1;
 
402
@stamp2:=f2 
 
403
#
 
404
select if( @stamp1 = @stamp2, "correct", "wrong");
 
405
if( @stamp1 = @stamp2, "correct", "wrong")
 
406
correct
 
407
drop table t1;