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 語句中的表名直接用"號引起來就行了。

 

---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM