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

MySQL数据库

开发平台:

Visual C++

  1. #
  2. # Test for various CREATE statements and character sets
  3. #
  4. # Check that the database charset is taken from server charset by default:
  5. # - Change local character_set_server variable to latin5.
  6. # - Create database with and without CHARACTER SET specification.
  7. # At the same time check fix for the
  8. # Bug#2151:
  9. # "USE db" with non-default character set should never affect 
  10. # further CREATE DATABASEs.
  11. SET @@character_set_server=latin5;
  12. CREATE DATABASE mysqltest1 DEFAULT CHARACTER SET cp1251;
  13. USE mysqltest1;
  14. CREATE DATABASE mysqltest2;
  15. #
  16. # This should be cp1251
  17. #
  18. SHOW CREATE DATABASE mysqltest1;
  19. #
  20. # Database "mysqltest2" should take the default latin5 value from
  21. # the server level.
  22. # Afterwards, table "d2.t1" should inherit the default latin5 value from
  23. # the database "mysqltest2", using database option hash.
  24. #
  25. SHOW CREATE DATABASE mysqltest2;
  26. CREATE TABLE mysqltest2.t1 (a char(10));
  27. SHOW CREATE TABLE mysqltest2.t1;
  28. DROP TABLE mysqltest2.t1;
  29. #
  30. # Now we check if the database charset is updated in
  31. # the database options hash when we ALTER DATABASE.
  32. #
  33. ALTER DATABASE mysqltest2 DEFAULT CHARACTER SET latin7;
  34. CREATE TABLE mysqltest2.t1 (a char(10));
  35. SHOW CREATE TABLE mysqltest2.t1;
  36. DROP DATABASE mysqltest2;
  37. #
  38. # Now we check if the database charset is removed from
  39. # the database option hash when we DROP DATABASE.
  40. #
  41. CREATE DATABASE mysqltest2 CHARACTER SET latin2;
  42. CREATE TABLE mysqltest2.t1 (a char(10));
  43. SHOW CREATE TABLE mysqltest2.t1;
  44. DROP DATABASE mysqltest2;
  45. #
  46. # Check that table value uses database level by default
  47. #
  48. USE mysqltest1;
  49. CREATE TABLE t1 (a char(10));
  50. SHOW CREATE TABLE t1;
  51. DROP TABLE t1;
  52. #
  53. # Bug#3255
  54. #
  55. CREATE TABLE t1 (a char(10)) DEFAULT CHARACTER SET latin1;
  56. SHOW CREATE TABLE t1;
  57. DROP TABLE t1;
  58. CREATE TABLE t1 (a char(10)) 
  59. DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci;
  60. SHOW CREATE TABLE t1;
  61. DROP TABLE t1;
  62. #
  63. # Bug#
  64. # CREATE TABLE and CREATE DATABASE didn't fail in some cases
  65. #
  66. --error 1302
  67. create table t1 (a char) character set latin1 character set latin2;
  68. --error 1253
  69. create table t1 (a char) character set latin1 collate latin2_bin;
  70. --error 1302
  71. create database d1 default character set latin1 character set latin2;
  72. --error 1253
  73. create database d1 default character set latin1 collate latin2_bin; 
  74. #
  75. #
  76. DROP DATABASE mysqltest1;
  77. #
  78. # Synatx: 'ALTER DATABASE' without db_name
  79. #
  80. CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET latin7;
  81. use mysqltest2;
  82. ALTER DATABASE DEFAULT CHARACTER SET latin2;
  83. show create database mysqltest2;
  84. drop database mysqltest2;
  85. --error 1046
  86. ALTER DATABASE DEFAULT CHARACTER SET latin2;
  87. # End of 4.1 tests