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

MySQL数据库

开发平台:

Visual C++

  1. drop table if exists t1;
  2. SET SQL_SAFE_UPDATES=1,SQL_SELECT_LIMIT=4, SQL_MAX_JOIN_SIZE=9;
  3. create table t1 (a int auto_increment primary key, b char(20));
  4. insert into t1 values(1,"test");
  5. SELECT SQL_BUFFER_RESULT * from t1;
  6. a b
  7. 1 test
  8. update t1 set b="a" where a=1;
  9. delete from t1 where a=1;
  10. insert into t1 values(1,"test"),(2,"test2");
  11. SELECT SQL_BUFFER_RESULT * from t1;
  12. a b
  13. 1 test
  14. 2 test2
  15. update t1 set b="a" where a=1;
  16. select 1 from t1,t1 as t2,t1 as t3;
  17. 1
  18. 1
  19. 1
  20. 1
  21. 1
  22. update t1 set b="a";
  23. ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
  24. update t1 set b="a" where b="test";
  25. ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
  26. delete from t1;
  27. ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
  28. delete from t1 where b="test";
  29. ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
  30. delete from t1 where a+0=1;
  31. ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
  32. select 1 from t1,t1 as t2,t1 as t3,t1 as t4,t1 as t5;
  33. ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
  34. update t1 set b="a" limit 1;
  35. update t1 set b="a" where b="b" limit 2;
  36. delete from t1 where b="test" limit 1;
  37. delete from t1 where a+0=1 limit 2;
  38. alter table t1 add key b (b);
  39. SET MAX_JOIN_SIZE=2;
  40. SELECT @@MAX_JOIN_SIZE, @@SQL_BIG_SELECTS;
  41. @@MAX_JOIN_SIZE @@SQL_BIG_SELECTS
  42. 2 0
  43. insert into t1 values (null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a");
  44. SELECT * from t1 order by a;
  45. ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
  46. SET SQL_BIG_SELECTS=1;
  47. SELECT * from t1 order by a;
  48. a b
  49. 2 test2
  50. 3 a
  51. 4 a
  52. 5 a
  53. SET MAX_JOIN_SIZE=2;
  54. SELECT * from t1;
  55. ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
  56. SET MAX_JOIN_SIZE=DEFAULT;
  57. SELECT * from t1;
  58. a b
  59. 2 test2
  60. 3 a
  61. 4 a
  62. 5 a
  63. SELECT @@MAX_SEEKS_FOR_KEY;
  64. @@MAX_SEEKS_FOR_KEY
  65. 4294967295
  66. analyze table t1;
  67. Table Op Msg_type Msg_text
  68. test.t1 analyze status OK
  69. insert into t1 values (null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a");
  70. explain select STRAIGHT_JOIN * from t1,t1 as t2 where t1.b=t2.b;
  71. id select_type table type possible_keys key key_len ref rows Extra
  72. 1 SIMPLE t1 ALL b NULL NULL NULL 21
  73. 1 SIMPLE t2 ref b b 21 test.t1.b 6 Using where
  74. set MAX_SEEKS_FOR_KEY=1;
  75. explain select STRAIGHT_JOIN * from t1,t1 as t2 where t1.b=t2.b;
  76. id select_type table type possible_keys key key_len ref rows Extra
  77. 1 SIMPLE t1 ALL b NULL NULL NULL 21
  78. 1 SIMPLE t2 ref b b 21 test.t1.b 6 Using where
  79. SET MAX_SEEKS_FOR_KEY=DEFAULT;
  80. drop table t1;
  81. create table t1 (a int);
  82. insert into t1 values (1),(2),(3),(4),(5);
  83. insert into t1 select * from t1;
  84. insert into t1 select * from t1;
  85. insert into t1 select * from t1;
  86. set local  max_join_size=8;
  87. select * from (select * from t1) x;
  88. ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
  89. set local  max_join_size=1;
  90. select * from (select * from t1 a, t1 b) x;
  91. ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
  92. set local  max_join_size=1;
  93. select * from (select 1 union select 2 union select 3) x;
  94. ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
  95. drop table t1;
  96. SET SQL_SAFE_UPDATES=0,SQL_SELECT_LIMIT=DEFAULT, SQL_MAX_JOIN_SIZE=DEFAULT;