--disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1(c1 DATE NOT NULL, c2 DATE NOT NULL, c3 DATE NOT NULL, PRIMARY KEY(c1,c2,c3)); SET TIMESTAMP=1171346973; # 2007-02-13 15:09:33 INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01')); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'1 01:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),NOW(),NOW()); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01')); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 YEAR NOT NULL, c2 YEAR NOT NULL, c3 YEAR NOT NULL, PRIMARY KEY(c1,c2,c3)); INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,1999); INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000); INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999); INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,1999); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 TIME NOT NULL, c2 TIME NOT NULL, c3 TIME NOT NULL, PRIMARY KEY(c1,c2,c3)); SET TIMESTAMP=1171346973; # 2007-02-13 15:09:33 INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01')); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'1 01:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),NOW(),NOW()); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01')); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 YEAR NOT NULL, c2 YEAR NOT NULL, c3 YEAR NOT NULL, PRIMARY KEY(c1,c2,c3)); INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,1999); INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000); INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999); INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,1999); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 DATETIME NOT NULL, c2 DATETIME NOT NULL, c3 DATETIME NOT NULL, PRIMARY KEY(c1,c2,c3)); SET TIMESTAMP=1171346973; # 2007-02-13 15:09:33 INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01')); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'1 01:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),NOW(),NOW()); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01')); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 YEAR NOT NULL, c2 YEAR NOT NULL, c3 YEAR NOT NULL, PRIMARY KEY(c1,c2,c3)); INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,1999); INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000); INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999); INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,1999); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 TIMESTAMP NOT NULL, c2 TIMESTAMP NOT NULL, c3 TIMESTAMP NOT NULL, PRIMARY KEY(c1,c2,c3)); SET TIMESTAMP=1171346973; # 2007-02-13 15:09:33 INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01')); INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'1 01:01:01'),NOW()); INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),NOW(),NOW()); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW()); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01')); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(c1 YEAR NOT NULL, c2 YEAR NOT NULL, c3 YEAR NOT NULL, PRIMARY KEY(c1,c2,c3)); INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,1999); INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000); INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999); INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,1999); --error ER_DUP_ENTRY INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000); SELECT * FROM t1; DROP TABLE t1;