mysql ANSI_QUOTES 这个sql_mode的作用

Posted 蒋乐兴的技术随笔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql ANSI_QUOTES 这个sql_mode的作用相关的知识,希望对你有一定的参考价值。

 

首先sql_mode用于mysql的行为,sql_mode的多个值之间用‘,‘分隔;

 

1、平时sql_mode的值是多少?

select @@session.sql_mode;
+---------------------------------------------------------+
| @@session.sql_mode                                      |
+---------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION |
+---------------------------------------------------------+

 

2、如果我放荡不羁想建一张表、它的表名就叫table 那我要怎么做才好?

create table `table`(x int);
Query OK, 0 rows affected (0.01 sec)

  看到了没有这个时候我要用‘反引号‘ 把table 这个表名给引起来;哥哥我大一的时候真的是找到不这个’反引号‘怎么打出来呀!

  为了初学者不至于因为打不出‘反引号’而不能放荡不羁,于是ANSI_QUOTES出来了;有了它我们只有把关键字用‘双引号’引起来

  就对了。

 

3、给sql_mode加上ANSI_QUOTES 

set @@session.sql_mode=concat(STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION,,ANSI_QUOTES);
Query OK, 0 rows affected, 1 warning (0.00 sec)

  #注意mysql中两个字符串是不能直接用+号连接起来的,要用concat函数。

 

4、查看mysql有ANSI_QUOTES后有多牛逼

mysql> show tables;
+-------------------+
| Tables_in_tempdb  |
+-------------------+
| django_migrations |
| polls_user        |
| t2                |
| table             |
+-------------------+
4 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> 
mysql> drop table "table";
Query OK, 0 rows affected (0.00 sec)

  看到了吧、在drop table 语句中的表名直接用"号引起来就行了。

 

---

以上是关于mysql ANSI_QUOTES 这个sql_mode的作用的主要内容,如果未能解决你的问题,请参考以下文章

2创建用户模板

你如何在MySql中实际搜索反引号?

如何全局启用mysql严格模式并保持开启状态?

安装mysql最后跳出的这个窗口怎么弄啊?

mysql 将查询结果 定期 发送邮件,这个功能mysql可以实现么?

`这个符号在mysql中的作用