--disable_warnings DROP TABLE IF EXISTS t1,t2; --enable_warnings CREATE TABLE t1(c1 TINYINT NOT NULL); CREATE TABLE t2(c1 TINYINT NOT NULL PRIMARY KEY); INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(3),(4),(4),(5); --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1; TRUNCATE TABLE t2; --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1 WHERE c1 >= 3; TRUNCATE TABLE t2; DROP TABLE t1,t2; CREATE TABLE t1(c1 SMALLINT NOT NULL); CREATE TABLE t2(c1 SMALLINT NOT NULL PRIMARY KEY); INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(3),(4),(4),(5); --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1; TRUNCATE TABLE t2; --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1 WHERE c1 >= 3; TRUNCATE TABLE t2; DROP TABLE t1,t2; CREATE TABLE t1(c1 MEDIUMINT NOT NULL); CREATE TABLE t2(c1 MEDIUMINT NOT NULL PRIMARY KEY); INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(3),(4),(4),(5); --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1; TRUNCATE TABLE t2; --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1 WHERE c1 >= 3; TRUNCATE TABLE t2; DROP TABLE t1,t2; CREATE TABLE t1(c1 INT NOT NULL); CREATE TABLE t2(c1 INT NOT NULL PRIMARY KEY); INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(3),(4),(4),(5); --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1; TRUNCATE TABLE t2; --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1 WHERE c1 >= 3; TRUNCATE TABLE t2; DROP TABLE t1,t2; CREATE TABLE t1(c1 INTEGER NOT NULL); CREATE TABLE t2(c1 INTEGER NOT NULL PRIMARY KEY); INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(3),(4),(4),(5); --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1; TRUNCATE TABLE t2; --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1 WHERE c1 >= 3; TRUNCATE TABLE t2; DROP TABLE t1,t2; CREATE TABLE t1(c1 BIGINT NOT NULL); CREATE TABLE t2(c1 BIGINT NOT NULL PRIMARY KEY); INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(3),(4),(4),(5); --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1; TRUNCATE TABLE t2; --error ER_DUP_ENTRY INSERT INTO t2 SELECT * FROM t1 WHERE c1 >= 3; TRUNCATE TABLE t2; DROP TABLE t1,t2;