--disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1(c1 DATE NOT NULL, c2 DATE NULL, c3 DATE NULL, PRIMARY KEY(c1), UNIQUE(c2)); SET TIMESTAMP=1171346973; # 2007-02-13 15:09:33 INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'4 04:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),ADDTIME(NOW(),'3 03:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'2 02:01:01'),ADDTIME(NOW(),'2 02:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'3 03:01:01'),ADDTIME(NOW(),'1 01:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'4 04:01:01'),NOW(),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'2 02:01:01'),ADDTIME(NOW(),'2 02:01:01'),NOW()) ON DUPLICATE KEY UPDATE c3=ADDTIME(NOW(),'6 06:01:01'); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()) ON DUPLICATE KEY UPDATE c3=ADDTIME(NOW(),'6 06:01:01'); --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 YEAR NOT NULL, c2 YEAR NULL, c3 YEAR NULL, PRIMARY KEY(c1), UNIQUE(c2)); INSERT INTO t1 (c1,c2,c3) VALUES(2000,2004,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2001,2003,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2002,2002,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2003,2001,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2004,2000,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2002,2002,2000) ON DUPLICATE KEY UPDATE c3=2011; INSERT INTO t1 (c1,c2,c3) VALUES(2000,2000,2000) ON DUPLICATE KEY UPDATE c3=2011; --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 TIME NOT NULL, c2 TIME NULL, c3 TIME NULL, PRIMARY KEY(c1), UNIQUE(c2)); SET TIMESTAMP=1171346973; # 2007-02-13 15:09:33 INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'4 04:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),ADDTIME(NOW(),'3 03:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'2 02:01:01'),ADDTIME(NOW(),'2 02:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'3 03:01:01'),ADDTIME(NOW(),'1 01:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'4 04:01:01'),NOW(),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'2 02:01:01'),ADDTIME(NOW(),'2 02:01:01'),NOW()) ON DUPLICATE KEY UPDATE c3=ADDTIME(NOW(),'6 06:01:01'); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()) ON DUPLICATE KEY UPDATE c3=ADDTIME(NOW(),'6 06:01:01'); --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 YEAR NOT NULL, c2 YEAR NULL, c3 YEAR NULL, PRIMARY KEY(c1), UNIQUE(c2)); INSERT INTO t1 (c1,c2,c3) VALUES(2000,2004,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2001,2003,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2002,2002,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2003,2001,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2004,2000,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2002,2002,2000) ON DUPLICATE KEY UPDATE c3=2011; INSERT INTO t1 (c1,c2,c3) VALUES(2000,2000,2000) ON DUPLICATE KEY UPDATE c3=2011; --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 DATETIME NOT NULL, c2 DATETIME NULL, c3 DATETIME NULL, PRIMARY KEY(c1), UNIQUE(c2)); SET TIMESTAMP=1171346973; # 2007-02-13 15:09:33 INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'4 04:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),ADDTIME(NOW(),'3 03:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'2 02:01:01'),ADDTIME(NOW(),'2 02:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'3 03:01:01'),ADDTIME(NOW(),'1 01:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'4 04:01:01'),NOW(),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'2 02:01:01'),ADDTIME(NOW(),'2 02:01:01'),NOW()) ON DUPLICATE KEY UPDATE c3=ADDTIME(NOW(),'6 06:01:01'); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()) ON DUPLICATE KEY UPDATE c3=ADDTIME(NOW(),'6 06:01:01'); --sorted_result SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 YEAR NOT NULL, c2 YEAR NULL, c3 YEAR NULL, PRIMARY KEY(c1), UNIQUE(c2)); INSERT INTO t1 (c1,c2,c3) VALUES(2000,2004,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2001,2003,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2002,2002,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2003,2001,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2004,2000,2000); INSERT INTO t1 (c1,c2,c3) VALUES(2002,2002,2000) ON DUPLICATE KEY UPDATE c3=2011; INSERT INTO t1 (c1,c2,c3) VALUES(2000,2000,2000) ON DUPLICATE KEY UPDATE c3=2011; --sorted_result SELECT * FROM t1; DROP TABLE t1;