⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strict.test

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 TEST
📖 第 1 页 / 共 3 页
字号:
# Testing of "strict" mode-- source include/have_innodb.incset @org_mode=@@sql_mode;set @@sql_mode='ansi,traditional';select @@sql_mode;--disable_warningsDROP TABLE IF EXISTS t1, t2;--enable_warnings# Test INSERT with DATECREATE TABLE t1 (col1 date);INSERT INTO t1 VALUES('2004-01-01'),('2004-02-29');INSERT INTO t1 VALUES('0000-10-31');# All test cases expected to fail should return #      SQLSTATE 22007 <invalid date value>--error 1292INSERT INTO t1 VALUES('2004-0-31');--error 1292INSERT INTO t1 VALUES('2004-01-02'),('2004-0-31');--error 1292INSERT INTO t1 VALUES('2004-10-0');--error 1292INSERT INTO t1 VALUES('2004-09-31');--error 1292INSERT INTO t1 VALUES('2004-10-32');--error 1292INSERT INTO t1 VALUES('2003-02-29');--error 1292INSERT INTO t1 VALUES('2004-13-15');--error 1292INSERT INTO t1 VALUES('0000-00-00');# Standard says we should return SQLSTATE 22018--error 1292INSERT INTO t1 VALUES ('59');# Test the different related modesset @@sql_mode='STRICT_ALL_TABLES';INSERT INTO t1 VALUES('2004-01-03'),('2004-0-31');set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_IN_DATE';--error 1292INSERT INTO t1 VALUES('2004-0-30');--error 1292INSERT INTO t1 VALUES('2004-01-04'),('2004-0-31'),('2004-01-05');INSERT INTO t1 VALUES('0000-00-00');INSERT IGNORE INTO t1 VALUES('2004-0-29');set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_DATE';--error 1292INSERT INTO t1 VALUES('0000-00-00');INSERT IGNORE INTO t1 VALUES('0000-00-00');INSERT INTO t1 VALUES ('2004-0-30');--error 1292INSERT INTO t1 VALUES ('2004-2-30');set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';INSERT INTO t1 VALUES ('2004-2-30');set @@sql_mode='ansi,traditional';INSERT IGNORE INTO t1 VALUES('2004-02-29'),('2004-13-15'),('0000-00-00');select * from t1;drop table t1;# Test difference in behaviour with InnoDB and MyISAM tablesset @@sql_mode='strict_trans_tables';CREATE TABLE t1 (col1 date) engine=myisam;--error 1292INSERT INTO t1 VALUES('2004-13-31'),('2004-1-1');INSERT INTO t1 VALUES ('2004-1-2'), ('2004-13-31'),('2004-1-3');INSERT IGNORE INTO t1 VALUES('2004-13-31'),('2004-1-4');--error 1292INSERT INTO t1 VALUES ('2003-02-29');INSERT ignore INTO t1 VALUES('2003-02-30');set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';INSERT ignore INTO t1 VALUES('2003-02-31');select * from t1;drop table t1;set @@sql_mode='strict_trans_tables';CREATE TABLE t1 (col1 date) engine=innodb;--error 1292INSERT INTO t1 VALUES('2004-13-31'),('2004-1-1');--error 1292INSERT INTO t1 VALUES ('2004-1-2'), ('2004-13-31'),('2004-1-3');INSERT IGNORE INTO t1 VALUES('2004-13-31'),('2004-1-4');--error 1292INSERT INTO t1 VALUES ('2003-02-29');INSERT ignore INTO t1 VALUES('2003-02-30');set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';INSERT ignore INTO t1 VALUES('2003-02-31');select * from t1;drop table t1;set @@sql_mode='ansi,traditional';# Test INSERT with DATETIMECREATE TABLE t1 (col1 datetime);INSERT INTO t1 VALUES('2004-10-31 15:30:00'),('2004-02-29 15:30:00');INSERT INTO t1 VALUES('0000-10-31 15:30:00');# All test cases expected to fail should return #      SQLSTATE 22007 <invalid datetime value>--error 1292INSERT INTO t1 VALUES('2004-0-31 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-10-0 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-09-31 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-10-32 15:30:00');--error 1292INSERT INTO t1 VALUES('2003-02-29 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-13-15 15:30:00');--error 1292INSERT INTO t1 VALUES('0000-00-00 15:30:00');# Standard says we should return SQLSTATE 22018--error 1292INSERT INTO t1 VALUES ('59');select * from t1;drop table t1;# Test INSERT with TIMESTAMPCREATE TABLE t1 (col1 timestamp);INSERT INTO t1 VALUES('2004-10-31 15:30:00'),('2004-02-29 15:30:00');# All test cases expected to fail should return #      SQLSTATE 22007 <invalid datetime value># Standard says we should return ok, but we can't as this is out of range--error 1292INSERT INTO t1 VALUES('0000-10-31 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-0-31 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-10-0 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-09-31 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-10-32 15:30:00');--error 1292INSERT INTO t1 VALUES('2003-02-29 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-13-15 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-02-29 25:30:00');--error 1292INSERT INTO t1 VALUES('2004-02-29 15:65:00');--error 1292INSERT INTO t1 VALUES('2004-02-29 15:31:61');--error 1292INSERT INTO t1 VALUES('0000-00-00 15:30:00');--error 1292INSERT INTO t1 VALUES('0000-00-00 00:00:00');INSERT IGNORE INTO t1 VALUES('0000-00-00 00:00:00');# Standard says we should return SQLSTATE 22018--error 1292INSERT INTO t1 VALUES ('59');set @@sql_mode='STRICT_ALL_TABLES,ALLOW_INVALID_DATES';--error 1292INSERT INTO t1 VALUES('2004-0-31 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-10-0 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-10-32 15:30:00');--error 1292INSERT INTO t1 VALUES('2004-02-30 15:30:04');INSERT INTO t1 VALUES('0000-00-00 00:00:00');set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_IN_DATE';INSERT INTO t1 VALUES('0000-00-00 00:00:00');set @@sql_mode='STRICT_ALL_TABLES,NO_ZERO_DATE';--error 1292INSERT INTO t1 VALUES('0000-00-00 00:00:00');set @@sql_mode='ansi,traditional';SELECT * FROM t1;DROP TABLE t1;#### Test INSERT with STR_TO_DATE into DATE/DATETIME/TIMESTAMPCREATE TABLE t1 (col1 date, col2 datetime, col3 timestamp);INSERT INTO t1 (col1) VALUES (STR_TO_DATE('15.10.2004','%d.%m.%Y'));INSERT INTO t1 (col2) VALUES (STR_TO_DATE('15.10.2004 10.15','%d.%m.%Y %H.%i'));INSERT INTO t1 (col3) VALUES (STR_TO_DATE('15.10.2004 10.15','%d.%m.%Y %H.%i'));## Test INSERT with STR_TO_DATE into DATE#       All test cases expected to fail should return #       SQLSTATE 22007 <invalid date value>INSERT INTO t1 (col1) VALUES(STR_TO_DATE('31.10.0000 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col1) VALUES(STR_TO_DATE('31.0.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col1) VALUES(STR_TO_DATE('0.10.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col1) VALUES(STR_TO_DATE('31.9.2004 15.30','%d.%m.%Y %H.%i'));--error 1411INSERT INTO t1 (col1) VALUES(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col1) VALUES(STR_TO_DATE('29.02.2003 15.30','%d.%m.%Y %H.%i'));--error 1411INSERT INTO t1 (col1) VALUES(STR_TO_DATE('15.13.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col1) VALUES(STR_TO_DATE('00.00.0000','%d.%m.%Y'));## Test INSERT with STR_TO_DATE into DATETIME#       All test cases expected to fail should return #       SQLSTATE 22007 <invalid datetime value>INSERT INTO t1 (col2) VALUES(STR_TO_DATE('31.10.0000 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col2) VALUES(STR_TO_DATE('31.0.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col2) VALUES(STR_TO_DATE('0.10.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col2) VALUES(STR_TO_DATE('31.9.2004 15.30','%d.%m.%Y %H.%i'));--error 1411INSERT INTO t1 (col2) VALUES(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col2) VALUES(STR_TO_DATE('29.02.2003 15.30','%d.%m.%Y %H.%i'));--error 1411INSERT INTO t1 (col2) VALUES(STR_TO_DATE('15.13.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col2) VALUES(STR_TO_DATE('00.00.0000','%d.%m.%Y'));## Test INSERT with STR_TO_DATE into TIMESTAMP#       All test cases expected to fail should return #       SQLSTATE 22007 <invalid datetime value>--error 1292INSERT INTO t1 (col3) VALUES(STR_TO_DATE('31.10.0000 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col3) VALUES(STR_TO_DATE('31.0.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col3) VALUES(STR_TO_DATE('0.10.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col3) VALUES(STR_TO_DATE('31.9.2004 15.30','%d.%m.%Y %H.%i'));--error 1411INSERT INTO t1 (col3) VALUES(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col3) VALUES(STR_TO_DATE('29.02.2003 15.30','%d.%m.%Y %H.%i'));--error 1411INSERT INTO t1 (col3) VALUES(STR_TO_DATE('15.13.2004 15.30','%d.%m.%Y %H.%i'));--error 1292INSERT INTO t1 (col3) VALUES(STR_TO_DATE('00.00.0000','%d.%m.%Y'));drop table t1;#### Test INSERT with CAST AS DATE/DATETIME into DATE/DATETIME/TIMESTAMPCREATE TABLE t1 (col1 date, col2 datetime, col3 timestamp);INSERT INTO t1 (col1) VALUES (CAST('2004-10-15' AS DATE));INSERT INTO t1 (col2) VALUES (CAST('2004-10-15 10:15' AS DATETIME));INSERT INTO t1 (col3) VALUES (CAST('2004-10-15 10:15' AS DATETIME));## Test INSERT with CAST AS DATE into DATE#       All test cases expected to fail should return #       SQLSTATE 22007 <invalid date value>INSERT INTO t1 (col1) VALUES(CAST('0000-10-31' AS DATE));--error 1292INSERT INTO t1 (col1) VALUES(CAST('2004-10-0' AS DATE));--error 1292INSERT INTO t1 (col1) VALUES(CAST('2004-0-10' AS DATE));# deactivated because of Bug#8294# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE# --error 1292# INSERT INTO t1 (col1) VALUES(CAST('2004-9-31' AS DATE));# --error 1292# INSERT INTO t1 (col1) VALUES(CAST('2004-10-32' AS DATE));# --error 1292# INSERT INTO t1 (col1) VALUES(CAST('2003-02-29' AS DATE));# --error 1292# INSERT INTO t1 (col1) VALUES(CAST('2004-13-15' AS DATE));# deactivated because of Bug#6145#  Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values--error 1292INSERT INTO t1 (col1) VALUES(CAST('0000-00-00' AS DATE));## Test INSERT with CAST AS DATETIME into DATETIME#       All test cases expected to fail should return #       SQLSTATE 22007 <invalid datetime value>INSERT INTO t1 (col2) VALUES(CAST('0000-10-31 15:30' AS DATETIME));--error 1292INSERT INTO t1 (col2) VALUES(CAST('2004-10-0 15:30' AS DATETIME));--error 1292INSERT INTO t1 (col2) VALUES(CAST('2004-0-10 15:30' AS DATETIME));# deactivated because of Bug#8294# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE#--error 1292#INSERT INTO t1 (col2) VALUES(CAST('2004-9-31 15:30' AS DATETIME));#--error 1292#INSERT INTO t1 (col2) VALUES(CAST('2004-10-32 15:30' AS DATETIME));#--error 1292#INSERT INTO t1 (col2) VALUES(CAST('2003-02-29 15:30' AS DATETIME));#--error 1292#INSERT INTO t1 (col2) VALUES(CAST('2004-13-15 15:30' AS DATETIME));# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values--error 1292INSERT INTO t1 (col2) VALUES(CAST('0000-00-00' AS DATETIME));## Test INSERT with CAST AS DATETIME into TIMESTAMP#       All test cases expected to fail should return #       SQLSTATE 22007 <invalid datetime value>--error 1292INSERT INTO t1 (col3) VALUES(CAST('0000-10-31 15:30' AS DATETIME));# should return OK# We accept this to be a failure--error 1292INSERT INTO t1 (col3) VALUES(CAST('2004-10-0 15:30' AS DATETIME));--error 1292INSERT INTO t1 (col3) VALUES(CAST('2004-0-10 15:30' AS DATETIME));# should return SQLSTATE 22007 <invalid datetime value># deactivated because of Bug#8294# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE#--error 1292#INSERT INTO t1 (col3) VALUES(CAST('2004-9-31 15:30' AS DATETIME));#--error 1292#INSERT INTO t1 (col3) VALUES(CAST('2004-10-32 15:30' AS DATETIME));#--error 1292#INSERT INTO t1 (col3) VALUES(CAST('2003-02-29 15:30' AS DATETIME));#--error 1292#INSERT INTO t1 (col3) VALUES(CAST('2004-13-15 15:30' AS DATETIME));# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values--error 1292INSERT INTO t1 (col3) VALUES(CAST('0000-00-00' AS DATETIME));drop table t1;#### Test INSERT with CONVERT to DATE/DATETIME into DATE/DATETIME/TIMESTAMPCREATE TABLE t1 (col1 date, col2 datetime, col3 timestamp);INSERT INTO t1 (col1) VALUES (CONVERT('2004-10-15',DATE));INSERT INTO t1 (col2) VALUES (CONVERT('2004-10-15 10:15',DATETIME));INSERT INTO t1 (col3) VALUES (CONVERT('2004-10-15 10:15',DATETIME));## Test INSERT with CONVERT to DATE into DATE#       All test cases expected to fail should return #       SQLSTATE 22007 <invalid date value>INSERT INTO t1 (col1) VALUES(CONVERT('0000-10-31' , DATE));--error 1292INSERT INTO t1 (col1) VALUES(CONVERT('2004-10-0' , DATE));--error 1292INSERT INTO t1 (col1) VALUES(CONVERT('2004-0-10' , DATE));# deactivated because of Bug#8294# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE#--error 1292#INSERT INTO t1 (col1) VALUES(CONVERT('2004-9-31' , DATE));#--error 1292#INSERT INTO t1 (col1) VALUES(CONVERT('2004-10-32' , DATE));#--error 1292#INSERT INTO t1 (col1) VALUES(CONVERT('2003-02-29' , DATE));#--error 1292#INSERT INTO t1 (col1) VALUES(CONVERT('2004-13-15',DATE));# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values--error 1292INSERT INTO t1 (col1) VALUES(CONVERT('0000-00-00',DATE));## Test INSERT with CONVERT to DATETIME into DATETIME#       All test cases expected to fail should return #       SQLSTATE 22007 <invalid datetime value>INSERT INTO t1 (col2) VALUES(CONVERT('0000-10-31 15:30',DATETIME));--error 1292INSERT INTO t1 (col2) VALUES(CONVERT('2004-10-0 15:30',DATETIME));--error 1292INSERT INTO t1 (col2) VALUES(CONVERT('2004-0-10 15:30',DATETIME));# deactivated because of Bug#8294# Bug#8294 Traditional: Misleading error message for invalid CAST to DATE#--error 1292#INSERT INTO t1 (col2) VALUES(CONVERT('2004-9-31 15:30',DATETIME));#--error 1292#INSERT INTO t1 (col2) VALUES(CONVERT('2004-10-32 15:30',DATETIME));#--error 1292#INSERT INTO t1 (col2) VALUES(CONVERT('2003-02-29 15:30',DATETIME));#--error 1292#INSERT INTO t1 (col2) VALUES(CONVERT('2004-13-15 15:30',DATETIME));# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values--error 1292INSERT INTO t1 (col2) VALUES(CONVERT('0000-00-00',DATETIME));## Test INSERT with CONVERT to DATETIME into DATETIME#       All test cases expected to fail should return #       SQLSTATE 22007 <invalid datetime value>--error 1292INSERT INTO t1 (col3) VALUES(CONVERT('0000-10-31 15:30',DATETIME));# should return OK# We accept this to be a failure--error 1292INSERT INTO t1 (col3) VALUES(CONVERT('2004-10-0 15:30',DATETIME));--error 1292INSERT INTO t1 (col3) VALUES(CONVERT('2004-0-10 15:30',DATETIME));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -