108
108
CREATE TABLE t1 (a INT, b INT, c INT, UNIQUE (A), UNIQUE(B));
109
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;
110
INSERT t1 SELECT 5,6,30 ON DUPLICATE KEY UPDATE c=c+100;
111
111
SELECT * FROM t1;
116
INSERT t1 SELECT 5,7,40 FROM DUAL ON DUPLICATE KEY UPDATE c=c+100;
116
INSERT t1 SELECT 5,7,40 ON DUPLICATE KEY UPDATE c=c+100;
117
117
SELECT * FROM t1;
122
INSERT t1 SELECT 8,4,50 FROM DUAL ON DUPLICATE KEY UPDATE c=c+1000;
122
INSERT t1 SELECT 8,4,50 ON DUPLICATE KEY UPDATE c=c+1000;
123
123
SELECT * FROM t1;
128
INSERT t1 SELECT 1,4,60 FROM DUAL ON DUPLICATE KEY UPDATE c=c+10000;
128
INSERT t1 SELECT 1,4,60 ON DUPLICATE KEY UPDATE c=c+10000;
129
129
SELECT * FROM t1;
134
INSERT t1 SELECT 1,9,70 FROM DUAL ON DUPLICATE KEY UPDATE c=c+100000, b=4;
134
INSERT t1 SELECT 1,9,70 ON DUPLICATE KEY UPDATE c=c+100000, b=4;
135
135
ERROR 23000: Duplicate entry '4' for key 'b'
136
136
SELECT * FROM t1;
192
192
ERROR 23000: Column 't1.a' in field list is ambiguous
194
194
CREATE TABLE t1 (
195
a BIGINT(20) NOT NULL DEFAULT 0,
195
a BIGINT NOT NULL DEFAULT 0,
198
198
INSERT INTO t1 ( a ) SELECT 0 ON DUPLICATE KEY UPDATE a = a + VALUES (a) ;
206
206
INSERT INTO t1 VALUES (45, 1) ON DUPLICATE KEY UPDATE b =
236
236
INSERT INTO t1 SELECT 1, COUNT(*) FROM t2 ON DUPLICATE KEY UPDATE j= a;
237
237
ERROR 42S22: Unknown column 'a' in 'field list'
238
238
DROP TABLE t1,t2;
239
SET SQL_MODE = 'TRADITIONAL';
240
239
CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL);
241
240
INSERT INTO t1 (a) VALUES (1);
242
241
ERROR HY000: Field 'b' doesn't have a default value
261
SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
262
260
CREATE TABLE `t1` (
263
`id` int(11) PRIMARY KEY auto_increment,
261
`id` int PRIMARY KEY auto_increment,
264
262
`f1` varchar(10) NOT NULL UNIQUE
266
264
INSERT IGNORE INTO t1 (f1) VALUES ("test1")
278
276
SELECT * FROM t1;
282
280
INSERT IGNORE INTO t1 (f1) VALUES ("test2")
283
281
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
284
282
SELECT LAST_INSERT_ID();
287
285
SELECT * FROM t1;
291
289
INSERT IGNORE INTO t1 (f1) VALUES ("test3")
292
290
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);
293
291
SELECT LAST_INSERT_ID();
296
294
SELECT * FROM t1;
302
300
CREATE TABLE `t1` (
303
`id` int(11) PRIMARY KEY auto_increment,
301
`id` int PRIMARY KEY auto_increment,
304
302
`f1` varchar(10) NOT NULL UNIQUE
306
304
INSERT IGNORE INTO t1 (f1) VALUES ("test1")
324
322
CREATE TABLE `t1` (
325
`id` int(11) PRIMARY KEY auto_increment,
323
`id` int PRIMARY KEY auto_increment,
326
324
`f1` varchar(10) NOT NULL UNIQUE,
327
325
tim1 timestamp default '2003-01-01 00:00:00' on update current_timestamp
397
394
f2 timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP);
398
395
insert into t1(f1) values(1);
399
396
select @stamp1:=f2 from t1;
402
399
insert into t1(f1) values(1) on duplicate key update f1=1;
403
400
select @stamp2:=f2 from t1;
406
403
select if( @stamp1 = @stamp2, "correct", "wrong");
407
404
if( @stamp1 = @stamp2, "correct", "wrong")