📄 temp_table.test
字号:
# mysqltest should be fixed-- source include/not_embedded.inc## Test of temporary tables#--disable_warningsdrop table if exists t1,t2;drop view if exists v1;--enable_warningsCREATE TABLE t1 (c int not null, d char (10) not null);insert into t1 values(1,""),(2,"a"),(3,"b");CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);insert into t1 values(4,"e"),(5,"f"),(6,"g");alter table t1 rename t2;select * from t1;select * from t2;CREATE TABLE t2 (x int not null, y int not null);alter table t2 rename t1;select * from t1;create TEMPORARY TABLE t2 engine=heap select * from t1;create TEMPORARY TABLE IF NOT EXISTS t2 (a int) engine=heap;# This should give errors--error 1050CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);--error 1050ALTER TABLE t1 RENAME t2;select * from t2;alter table t2 add primary key (a,b);drop table t1,t2;select * from t1;drop table t2;create temporary table t1 select *,2 as "e" from t1;select * from t1;drop table t1;drop table t1;## Test CONCAT_WS with temporary tables#CREATE TABLE t1 (pkCrash INTEGER PRIMARY KEY,strCrash VARCHAR(255));INSERT INTO t1 ( pkCrash, strCrash ) VALUES ( 1, '1');SELECT CONCAT_WS(pkCrash, strCrash) FROM t1;drop table t1;create temporary table t1 select 1 as 'x';drop table t1;CREATE TABLE t1 (x INT);INSERT INTO t1 VALUES (1), (2), (3);CREATE TEMPORARY TABLE tmp SELECT *, NULL FROM t1;drop table t1;## Problem with ELT#create temporary table t1 (id int(10) not null unique);create temporary table t2 (id int(10) not null primary key, val int(10) not null);# put in some initial valuesinsert into t1 values (1),(2),(4);insert into t2 values (1,1),(2,1),(3,1),(4,2);# do a query using ELT, a join and an ORDER BY.select one.id, two.val, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id order by one.id;drop table t1,t2;## Test of failed ALTER TABLE on temporary table#create temporary table t1 (a int not null);insert into t1 values (1),(1);-- error 1062alter table t1 add primary key (a);drop table t1;## In MySQL 4.0.4 doing a GROUP BY on a NULL column created a disk based# temporary table when a memory based one would be good enough.CREATE TABLE t1 ( d datetime default NULL) ENGINE=MyISAM;INSERT INTO t1 VALUES ('2002-10-24 14:50:32'),('2002-10-24 14:50:33'),('2002-10-24 14:50:34'),('2002-10-24 14:50:34'),('2002-10-24 14:50:34'),('2002-10-24 14:50:35'),('2002-10-24 14:50:35'),('2002-10-24 14:50:35'),('2002-10-24 14:50:35'),('2002-10-24 14:50:36'),('2002-10-24 14:50:36'),('2002-10-24 14:50:36'),('2002-10-24 14:50:36'),('2002-10-24 14:50:37'),('2002-10-24 14:50:37'),('2002-10-24 14:50:37'),('2002-10-24 14:50:37'),('2002-10-24 14:50:38'),('2002-10-24 14:50:38'),('2002-10-24 14:50:38'),('2002-10-24 14:50:39'),('2002-10-24 14:50:39'),('2002-10-24 14:50:39'),('2002-10-24 14:50:39'),('2002-10-24 14:50:40'),('2002-10-24 14:50:40'),('2002-10-24 14:50:40');flush status;select * from t1 group by d;show status like "created_tmp%tables";drop table t1;# Fix for BUG#8921: Check that temporary table is ingored by view commands.create temporary table v1 as select 'This is temp. table' A;create view v1 as select 'This is view' A;select * from v1;show create table v1;show create view v1;drop view v1;select * from v1;create view v1 as select 'This is view again' A;select * from v1;drop table v1;select * from v1;drop view v1;# Bug #8497: tmpdir with extra slashes would cause failures#create table t1 (a int, b int, index(a), index(b));create table t2 (c int auto_increment, d varchar(255), primary key (c));insert into t1 values (3,1),(3,2);insert into t2 values (NULL, 'foo'), (NULL, 'bar');select d, c from t1 left join t2 on b = c where a = 3 order by d;drop table t1, t2;## BUG#21096: locking issue ; temporary table conflicts.## The problem was that on DROP TEMPORARY table name lock was acquired,# which should not be done.#--disable_warningsDROP TABLE IF EXISTS t1;--enable_warningsCREATE TABLE t1 (i INT);LOCK TABLE t1 WRITE;connect (conn1, localhost, root,,);CREATE TEMPORARY TABLE t1 (i INT);--echo The following command should not blockDROP TEMPORARY TABLE t1;disconnect conn1;connection default;DROP TABLE t1;## Check that it's not possible to drop a base table with# DROP TEMPORARY statement.#CREATE TABLE t1 (i INT);CREATE TEMPORARY TABLE t2 (i INT);--error 1051DROP TEMPORARY TABLE t2, t1;# Table t2 should have been dropped.--error 1146SELECT * FROM t2;# But table t1 should still be there.SELECT * FROM t1;DROP TABLE t1;--echo End of 4.1 tests.## Bug #24791: Union with AVG-groups generates wrong results#CREATE TABLE t1 ( c FLOAT( 20, 14 ) );INSERT INTO t1 VALUES( 12139 );CREATE TABLE t2 ( c FLOAT(30,18) );INSERT INTO t2 VALUES( 123456 );SELECT AVG( c ) FROM t1 UNION SELECT 1;SELECT 1 UNION SELECT AVG( c ) FROM t1;SELECT 1 UNION SELECT * FROM t2 UNION SELECT 1;SELECT c/1 FROM t1 UNION SELECT 1;DROP TABLE t1, t2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -