# # Problem with INSERT ... SELECT # --disable_warnings drop table if exists t1,t2; --enable_warnings create table t1 (bandID MEDIUMINT UNSIGNED NOT NULL PRIMARY KEY, payoutID SMALLINT UNSIGNED NOT NULL); insert into t1 (bandID,payoutID) VALUES (1,6),(2,6),(3,4),(4,9),(5,10),(6,1),(7,12),(8,12); create table t2 (payoutID SMALLINT UNSIGNED NOT NULL PRIMARY KEY); insert into t2 (payoutID) SELECT DISTINCT payoutID FROM t1; --error 1062 insert into t2 (payoutID) SELECT payoutID+10 FROM t1; insert ignore into t2 (payoutID) SELECT payoutID+10 FROM t1; select * from t2; drop table t1,t2; # # bug in bulk insert optimization # test case by Fournier Jocelyn # CREATE TABLE `t1` ( `numeropost` bigint(20) unsigned NOT NULL default '0', `icone` tinyint(4) unsigned NOT NULL default '0', `numreponse` bigint(20) unsigned NOT NULL auto_increment, `contenu` text NOT NULL, `pseudo` varchar(50) NOT NULL default '', `date` datetime NOT NULL default '0000-00-00 00:00:00', `ip` bigint(11) NOT NULL default '0', `signature` tinyint(1) unsigned NOT NULL default '0', PRIMARY KEY (`numeropost`,`numreponse`) ,KEY `ip` (`ip`), KEY `date` (`date`), KEY `pseudo` (`pseudo`), KEY `numreponse` (`numreponse`) ) TYPE=MyISAM; CREATE TABLE `t2` ( `numeropost` bigint(20) unsigned NOT NULL default '0', `icone` tinyint(4) unsigned NOT NULL default '0', `numreponse` bigint(20) unsigned NOT NULL auto_increment, `contenu` text NOT NULL, `pseudo` varchar(50) NOT NULL default '', `date` datetime NOT NULL default '0000-00-00 00:00:00', `ip` bigint(11) NOT NULL default '0', `signature` tinyint(1) unsigned NOT NULL default '0', PRIMARY KEY (`numeropost`,`numreponse`), KEY `ip` (`ip`), KEY `date` (`date`), KEY `pseudo` (`pseudo`), KEY `numreponse` (`numreponse`) ) TYPE=MyISAM; INSERT INTO t2 (numeropost,icone,numreponse,contenu,pseudo,date,ip,signature) VALUES (9,1,56,'test','joce','2001-07-25 13:50:53' ,3649052399,0); INSERT INTO t1 (numeropost,icone,contenu,pseudo,date,signature,ip) SELECT 1618,icone,contenu,pseudo,date,signature,ip FROM t2 WHERE numeropost=9 ORDER BY numreponse ASC; show variables like '%bulk%'; INSERT INTO t1 (numeropost,icone,contenu,pseudo,date,signature,ip) SELECT 1718,icone,contenu,pseudo,date,signature,ip FROM t2 WHERE numeropost=9 ORDER BY numreponse ASC; DROP TABLE IF EXISTS t1,t2;