create.test

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· TEST 代码 · 共 1,152 行 · 第 1/3 页

TEST
1,152
字号
describe t1;create table t2(name varchar(10), age smallint default - 1);describe t2;drop table t1, t2;## test for bug #1427 "enum allows duplicate values in the list"#create table t1(cenum enum('a'), cset set('b'));create table t2(cenum enum('a','a'), cset set('b','b'));create table t3(cenum enum('a','A','a','c','c'), cset set('b','B','b','d','d'));drop table t1, t2, t3;## Bug #1209#create database mysqltest;use mysqltest;select database();drop database mysqltest;select database();# Connect without a database as user mysqltest_1create user mysqltest_1;connect (user1,localhost,mysqltest_1,,*NO-ONE*);connection user1;select database(), user();connection default;disconnect user1;drop user mysqltest_1;use test;## Test for Bug 856 'Naming a key "Primary" causes trouble'#--error 1280create table t1 (a int, index `primary` (a));--error 1280create table t1 (a int, index `PRIMARY` (a));create table t1 (`primary` int, index(`primary`));show create table t1;create table t2 (`PRIMARY` int, index(`PRIMARY`));show create table t2;create table t3 (a int);--error 1280alter table t3 add index `primary` (a);--error 1280alter table t3 add index `PRIMARY` (a);create table t4 (`primary` int);alter table t4 add index(`primary`);show create table t4;create table t5 (`PRIMARY` int);alter table t5 add index(`PRIMARY`);show create table t5;drop table t1, t2, t3, t4, t5;## bug #3266 TEXT in CREATE TABLE SELECT#CREATE TABLE t1(id varchar(10) NOT NULL PRIMARY KEY, dsc longtext);INSERT INTO t1 VALUES ('5000000001', NULL),('5000000003', 'Test'),('5000000004', NULL);CREATE TABLE t2(id varchar(15) NOT NULL, proc varchar(100) NOT NULL, runID varchar(16) NOT NULL, start datetime NOT NULL, PRIMARY KEY  (id,proc,runID,start));INSERT INTO t2 VALUES ('5000000001', 'proc01', '20031029090650', '2003-10-29 13:38:40'),('5000000001', 'proc02', '20031029090650', '2003-10-29 13:38:51'),('5000000001', 'proc03', '20031029090650', '2003-10-29 13:38:11'),('5000000002', 'proc09', '20031024013310', '2003-10-24 01:33:11'),('5000000002', 'proc09', '20031024153537', '2003-10-24 15:36:04'),('5000000004', 'proc01', '20031024013641', '2003-10-24 01:37:29'),('5000000004', 'proc02', '20031024013641', '2003-10-24 01:37:39');CREATE TABLE t3  SELECT t1.dsc,COUNT(DISTINCT t2.id) AS countOfRuns  FROM t1 LEFT JOIN t2 ON (t1.id=t2.id) GROUP BY t1.id;SELECT * FROM t3;drop table t1, t2, t3;## Bug#9666: Can't use 'DEFAULT FALSE' for column of type bool#create table t1 (b bool not null default false);create table t2 (b bool not null default true);insert into t1 values ();insert into t2 values ();select * from t1;select * from t2;drop table t1,t2;## Bug#10224 - ANALYZE TABLE crashing with simultaneous# CREATE ... SELECT statement.# This tests two additional possible errors and a hang if # an improper fix is present.#create table t1 (a int);--error 1093create table t1 select * from t1;--error 1093create table t2 union = (t1) select * from t1;flush tables with read lock;unlock tables;drop table t1;## Bug#10413: Invalid column name is not rejected#--error 1103create table t1(column.name int);--error 1103create table t1(test.column.name int);--error 1102create table t1(xyz.t1.name int);create table t1(t1.name int);create table t2(test.t2.name int);drop table t1,t2;## Bug #12537: UNION produces longtext instead of varchar#CREATE TABLE t1 (f1 VARCHAR(255) CHARACTER SET utf8);CREATE TABLE t2 AS SELECT LEFT(f1,171) AS f2 FROM t1 UNION SELECT LEFT(f1,171) AS f2 FROM t1;DESC t2;DROP TABLE t1,t2;## Bug#12913 Simple SQL can crash server or connection#CREATE TABLE t12913 (f1 ENUM ('a','b')) AS SELECT 'a' AS f1;SELECT * FROM t12913;DROP TABLE t12913;## Bug#11028: Crash on create table like#create database mysqltest;use mysqltest;drop database mysqltest;--error ER_NO_DB_ERROR create table test.t1 like x;--disable_warningsdrop table if exists test.t1;--enable_warnings## Bug #6859: Bogus error message on attempt to CREATE TABLE t LIKE view#create database mysqltest;use mysqltest;create view v1 as select 'foo' from dual;--error 1347create table t1 like v1;drop view v1;drop database mysqltest;# Bug #6008 MySQL does not create warnings when# creating database and using IF NOT EXISTS#create database mysqltest;create database if not exists mysqltest character set latin2;show create database mysqltest;drop database mysqltest;use test;create table t1 (a int);create table if not exists t1 (a int);drop table t1;# BUG#14139create table t1 (  a varchar(112) charset utf8 collate utf8_bin not null,  primary key (a)) select 'test' as a ;#--warning 1364show create table t1;drop table t1;## BUG#14480: assert failure in CREATE ... SELECT because of wrong#            calculation of number of NULLs.#CREATE TABLE t2 (  a int(11) default NULL);insert into t2 values(111);#--warning 1364create table t1 (   a varchar(12) charset utf8 collate utf8_bin not null,   b int not null, primary key (a)) select a, 1 as b from t2 ;show create table t1;drop table t1;#--warning 1364create table t1 (   a varchar(12) charset utf8 collate utf8_bin not null,   b int not null, primary key (a)) select a, 1 as c from t2 ;show create table t1;drop table t1;#--warning 1364create table t1 (   a varchar(12) charset utf8 collate utf8_bin not null,   b int null, primary key (a)) select a, 1 as c from t2 ;show create table t1;drop table t1;#--warning 1364create table t1 (   a varchar(12) charset utf8 collate utf8_bin not null,  b int not null, primary key (a)) select 'a' as a , 1 as b from t2 ;show create table t1;drop table t1;#--warning 1364create table t1 (   a varchar(12) charset utf8 collate utf8_bin,  b int not null, primary key (a)) select 'a' as a , 1 as b from t2 ;show create table t1;drop table t1, t2;create table t1 (   a1 int not null,  a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int);insert into t1 values (1,1,1, 1,1,1, 1,1,1);#--warning 1364create table t2 (   a1 varchar(12) charset utf8 collate utf8_bin not null,  a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,  primary key (a1)) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;drop table t2;#--warning 1364create table t2 (   a1 varchar(12) charset utf8 collate utf8_bin,  a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1;drop table t1, t2;#--warning 1364create table t1 (   a1 int, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int);insert into t1 values (1,1,1, 1,1,1, 1,1,1);#--warning 1364create table t2 (   a1 varchar(12) charset utf8 collate utf8_bin not null,  a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,  primary key (a1)) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;# Test the default valuedrop table t2;create table t2 ( a int default 3, b int default 3)  select a1,a2 from t1;show create table t2;drop table t1, t2;## Bug #15316 SET value having comma not correctly handled#--error 1367create table t1(a set("a,b","c,d") not null);# End of 4.1 tests## Bug #14155: Maximum value of MAX_ROWS handled incorrectly on 64-bit# platforms#create table t1 (i int) engine=myisam max_rows=100000000000;show create table t1;alter table t1 max_rows=100;show create table t1;alter table t1 max_rows=100000000000;show create table t1;drop table t1;## Tests for errors happening at various stages of CREATE TABLES ... SELECT## (Also checks that it behaves atomically in the sense that in case#  of error it is automatically dropped if it has not existed before.)## Error during open_and_lock_tables() of tables--error ER_NO_SUCH_TABLEcreate table t1 select * from t2;# Rather special error which also caught during open tables pahse--error ER_UPDATE_TABLE_USEDcreate table t1 select * from t1;# Error which happens before select_create::prepare()--error ER_CANT_AGGREGATE_2COLLATIONScreate table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1_bin);# Error during table creation--error ER_KEY_COLUMN_DOES_NOT_EXITScreate table t1 (primary key(a)) select "b" as b;# Error in select_create::prepare() which is not related to table creationcreate table t1 (a int);--error ER_WRONG_VALUE_COUNT_ON_ROWcreate table if not exists t1 select 1 as a, 2 as b;drop table t1;# Finally error which happens during insert--error ER_DUP_ENTRYcreate table t1 (primary key (a)) (select 1 as a) union all (select 1 as a);# What happens if table already exists ?create table t1 (i int);--error ER_TABLE_EXISTS_ERRORcreate table t1 select 1 as i;create table if not exists t1 select 1 as i;select * from t1;# Error before select_create::prepare()--error ER_CANT_AGGREGATE_2COLLATIONScreate table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1_bin);select * from t1;# Error which happens during insertion of rowsalter table t1 add primary key (i);--error ER_DUP_ENTRYcreate table if not exists t1 (select 2 as i) union all (select 2 as i);select * from t1;drop table t1;# Base vs temporary tables dillema (a.k.a. bug#24508 "Inconsistent# results of CREATE TABLE ... SELECT when temporary table exists").# In this situation we either have to create non-temporary table and# insert data in it or insert data in temporary table without creation# of permanent table. Since currently temporary tables always shadow# permanent tables we adopt second approach.create temporary table t1 (j int);create table if not exists t1 select 1;select * from t1;drop temporary table t1;--error ER_NO_SUCH_TABLEselect * from t1;--error ER_BAD_TABLE_ERRORdrop table t1;## CREATE TABLE ... SELECT and LOCK TABLES## There is little sense in using CREATE TABLE ... SELECT under# LOCK TABLES as it mostly does not work. At least we check that# the server doesn't crash, hang and produces sensible errors.# Includes test for bug #20662 "Infinite loop in CREATE TABLE# IF NOT EXISTS ... SELECT with locked tables".create table t1 (i int);insert into t1 values (1), (2);lock tables t1 read;--error ER_TABLE_NOT_LOCKEDcreate table t2 select * from t1;--error ER_TABLE_NOT_LOCKEDcreate table if not exists t2 select * from t1;unlock tables;create table t2 (j int);lock tables t1 read;--error ER_TABLE_NOT_LOCKEDcreate table t2 select * from t1;# This should not be ever allowed as it will undermine# lock-all-at-once approach--error ER_TABLE_NOT_LOCKEDcreate table if not exists t2 select * from t1;unlock tables;lock table t1 read, t2 read;--error ER_TABLE_NOT_LOCKED_FOR_WRITEcreate table t2 select * from t1;--error ER_TABLE_NOT_LOCKED_FOR_WRITEcreate table if not exists t2 select * from t1;unlock tables;lock table t1 read, t2 write;--error ER_TABLE_EXISTS_ERRORcreate table t2 select * from t1;# This is the only case which really works.create table if not exists t2 select * from t1;

⌨️ 快捷键说明

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