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

MySQL数据库

开发平台:

Visual C++

  1. --disable_warnings
  2. drop table if exists t1;
  3. --enable_warnings
  4. CREATE TABLE `t1` (
  5.   a int not null auto_increment,
  6.   `pseudo` varchar(35) character set latin2 NOT NULL default '',
  7.   `email` varchar(60) character set latin2 NOT NULL default '',
  8.   PRIMARY KEY  (a),
  9.   UNIQUE KEY `email` USING BTREE (`email`) 
  10. ) ENGINE=HEAP CHARSET=latin1 ROW_FORMAT DYNAMIC;
  11. set @@sql_mode="";
  12. show variables like 'sql_mode';
  13. show create table t1;
  14. set @@sql_mode="ansi_quotes";
  15. show variables like 'sql_mode';
  16. show create table t1;
  17. set @@sql_mode="no_table_options";
  18. show variables like 'sql_mode';
  19. show create table t1;
  20. set @@sql_mode="no_key_options";
  21. show variables like 'sql_mode';
  22. show create table t1;
  23. set @@sql_mode="no_field_options,mysql323,mysql40";
  24. show variables like 'sql_mode';
  25. show create table t1;
  26. set sql_mode="postgresql,oracle,mssql,db2,maxdb";
  27. select @@sql_mode;
  28. show create table t1;
  29. drop table t1;
  30. #
  31. # Check that a binary collation adds 'binary'
  32. # suffix into a char() column definition in
  33. # mysql40 and mysql2323 modes. This allows
  34. # not to lose the column's case sensitivity
  35. # when loading the dump in pre-4.1 servers. 
  36. #
  37. # Thus, in 4.0 and 3.23 modes we dump:
  38. #
  39. #   'char(10) collate xxx_bin' as 'char(10) binary' 
  40. #   'binary(10)' as 'binary(10)'
  41. #
  42. # In mysql-4.1 these types are different, and they will
  43. # be recreated differently.
  44. #
  45. # In mysqld-4.0 the the above two types were the same,
  46. # so it will create a 'char(10) binary' column for both definitions.
  47. CREATE TABLE t1 (
  48.  a char(10),
  49.  b char(10) collate latin1_bin,
  50.  c binary(10)
  51. ) character set latin1;
  52. set @@sql_mode="";
  53. show create table t1;
  54. set @@sql_mode="mysql323";
  55. show create table t1;
  56. set @@sql_mode="mysql40";
  57. show create table t1;
  58. drop table t1;
  59. #
  60. # BUG#5318 - failure: 'IGNORE_SPACE' affects numeric values after DEFAULT
  61. #
  62. # Force the usage of the default
  63. set session sql_mode = '';
  64. # statement for comparison, value starts with '.'
  65. create table t1 ( min_num   dec(6,6)     default .000001);
  66. show create table t1;
  67. drop table t1 ;
  68. #
  69. set session sql_mode = 'IGNORE_SPACE';
  70. # statement for comparison, value starts with '0'
  71. create table t1 ( min_num   dec(6,6)     default 0.000001);
  72. show create table t1;
  73. drop table t1 ;
  74. # This statement fails, value starts with '.'
  75. create table t1 ( min_num   dec(6,6)     default .000001);
  76. show create table t1;
  77. drop table t1 ;
  78. #
  79. # Bug #10732: Set SQL_MODE to NULL gives garbled error message
  80. #
  81. --error 1231
  82. set @@SQL_MODE=NULL;
  83. #
  84. # Bug #797: in sql_mode=ANSI, show create table ignores auto_increment
  85. #
  86. set session sql_mode=ansi;
  87. create table t1
  88. (f1 integer auto_increment primary key,
  89.  f2 timestamp default current_timestamp on update current_timestamp);
  90. show create table t1;
  91. set session sql_mode=no_field_options;
  92. show create table t1;
  93. drop table t1;
  94. # End of 4.1 tests