--disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1(c1 TINYINT NOT NULL, c2 TINYINT NULL, c3 TINYINT NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 SMALLINT NOT NULL, c2 SMALLINT NULL, c3 SMALLINT NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 MEDIUMINT NOT NULL, c2 MEDIUMINT NULL, c3 MEDIUMINT NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 INT NOT NULL, c2 INT NULL, c3 INT NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 INTEGER NOT NULL, c2 INTEGER NULL, c3 INTEGER NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 BIGINT NOT NULL, c2 BIGINT NULL, c3 BIGINT NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 DECIMAL NOT NULL, c2 DECIMAL NULL, c3 DECIMAL NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 DEC NOT NULL, c2 DEC NULL, c3 DEC NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 FIXED NOT NULL, c2 FIXED NULL, c3 FIXED NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 NUMERIC NOT NULL, c2 NUMERIC NULL, c3 NUMERIC NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 DOUBLE NOT NULL, c2 DOUBLE NULL, c3 DOUBLE NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 REAL NOT NULL, c2 REAL NULL, c3 REAL NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 DOUBLE PRECISION NOT NULL, c2 DOUBLE PRECISION NULL, c3 DOUBLE PRECISION NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 FLOAT NOT NULL, c2 FLOAT NULL, c3 FLOAT NULL, PRIMARY KEY (c1), UNIQUE (c2)); INSERT INTO t1 (c1,c2,c3) VALUES(10,14,10); INSERT INTO t1 (c1,c2,c3) VALUES(11,13,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10); INSERT INTO t1 (c1,c2,c3) VALUES(13,11,10); INSERT INTO t1 (c1,c2,c3) VALUES(14,10,10); INSERT INTO t1 (c1,c2,c3) VALUES(12,12,10) ON DUPLICATE KEY UPDATE c3=100; # match 1 record INSERT INTO t1 (c1,c2,c3) VALUES(10,10,10) ON DUPLICATE KEY UPDATE c3=100; # match 2 records, only 1 record updated --sorted_result SELECT * FROM t1; DROP TABLE t1;