temp_table.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #
  2. # Test of temporary tables
  3. #
  4. --disable_warnings
  5. drop table if exists t1,t2;
  6. --enable_warnings
  7. CREATE TABLE t1 (c int not null, d char (10) not null);
  8. insert into t1 values(1,""),(2,"a"),(3,"b");
  9. CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);
  10. insert into t1 values(4,"e"),(5,"f"),(6,"g");
  11. alter table t1 rename t2;
  12. select * from t1;
  13. select * from t2;
  14. CREATE TABLE t2 (x int not null, y int not null);
  15. alter table t2 rename t1;
  16. select * from t1;
  17. create TEMPORARY TABLE t2 engine=heap select * from t1;
  18. create TEMPORARY TABLE IF NOT EXISTS t2 (a int) engine=heap;
  19. # This should give errors
  20. --error 1050
  21. CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);
  22. --error 1050
  23. ALTER TABLE t1 RENAME t2;
  24. select * from t2;
  25. alter table t2 add primary key (a,b);
  26. drop table t1,t2;
  27. select * from t1;
  28. drop table t2;
  29. create temporary table t1 select *,2 as "e" from t1;
  30. select * from t1;
  31. drop table t1;
  32. drop table t1;
  33. #
  34. # Test CONCAT_WS with temporary tables
  35. #
  36. CREATE TABLE t1 (pkCrash INTEGER PRIMARY KEY,strCrash VARCHAR(255));
  37. INSERT INTO t1 ( pkCrash, strCrash ) VALUES ( 1, '1');
  38. SELECT CONCAT_WS(pkCrash, strCrash) FROM t1;
  39. drop table t1;
  40. create temporary table t1 select 1 as 'x';
  41. drop table t1;
  42. CREATE TABLE t1 (x INT);
  43. INSERT INTO t1 VALUES (1), (2), (3);
  44. CREATE TEMPORARY TABLE tmp SELECT *, NULL FROM t1;
  45. drop table t1;
  46. #
  47. # Problem with ELT
  48. #
  49. create temporary table t1 (id int(10) not null unique);
  50. create temporary table t2 (id int(10) not null primary key, 
  51. val int(10) not null);
  52. # put in some initial values
  53. insert into t1 values (1),(2),(4);
  54. insert into t2 values (1,1),(2,1),(3,1),(4,2);
  55. # do a query using ELT, a join and an ORDER BY.
  56. select one.id, two.val, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id order by one.id;
  57. drop table t1,t2;
  58. #
  59. # Test of failed ALTER TABLE on temporary table
  60. #
  61. create temporary table t1 (a int not null);
  62. insert into t1 values (1),(1);
  63. -- error 1062
  64. alter table t1 add primary key (a);
  65. drop table t1;
  66. #
  67. # In MySQL 4.0.4 doing a GROUP BY on a NULL column created a disk based
  68. # temporary table when a memory based one would be good enough.
  69. CREATE TABLE t1 (
  70.   d datetime default NULL
  71. ) ENGINE=MyISAM;
  72. 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');
  73. flush status;
  74. select * from t1 group by d;
  75. show status like "created_tmp%tables";
  76. drop table t1;
  77. # Bug #8497: tmpdir with extra slashes would cause failures
  78. #
  79. create table t1 (a int, b int, index(a), index(b));
  80. create table t2 (c int auto_increment, d varchar(255), primary key (c));
  81. insert into t1 values (3,1),(3,2);
  82. insert into t2 values (NULL, 'foo'), (NULL, 'bar');
  83. select d, c from t1 left join t2 on b = c where a = 3 order by d;
  84. drop table t1, t2;
  85. # End of 4.1 tests