Mysql對SQL注釋的擴充套件

2021-06-20 09:55:05 字數 1845 閱讀 3284

之前一直不明白mysql注釋中的嘆號是什麼東西,直到看了下邊的manual文件中的內容。

mysql伺服器包含一些其他sql dbms中不具備的擴充套件。注意,如果使用了它們,將無法把**移植到其他sql伺服器。在某些情況下,你可以編寫包含mysql擴充套件的**,但仍保持其可移植性,方法是用「/*... */」注釋掉這些擴充套件。在本例中,mysql伺服器能夠解析並執行注釋中的**,就像對待其他mysql語句一樣,但其他sql伺服器將忽略這些擴充套件。例如:

select /*! straight_join */ col_name from table1,table2 where ...
如果在字元「!」後新增了版本號,僅當mysql的版本等於或高於指定的版本號時才會執行注釋中的語法:

create /*!32302 temporary */ table t (a int);
這意味著,如果你的版本號為3.23.02或更高,mysql伺服器將使用temporary關鍵字。

今天是在看5.1的partition表的show create table的時候,又去想這個問題的,如下為乙個partition表的建立語法:只有版本大於5.1才會去做注釋裡邊的內容。我不明白的是5.1怎麼是

50100這麼個表示,ms二級版本

create table `log_data` (

`hap_date` date default null,

`uin` int(11) default null

) engine=innodb default charset=utf8 /*!50100 partition by list (to_days(hap_date)) (partition p_20080523 values in (733550) engine = innodb) */ 

還有乙個是以前很迷惑的,在mysqldump過程中那些select都是帶有sql_no_cache的,不知道為什麼,其實manual裡邊都有解釋

select /*!40001 sql_no_cache */ * from `tbmail_1`;

·sql_no_cache告知mysql不要把查詢結果儲存在查詢快取中。請參見5.13節,「mysql查詢高速緩衝」。對於乙個使用union或子查詢的查詢,本選項會影響查詢中的select。

其實mysqldump結果sql裡邊很多這樣的東東:

代表了各個版本mysql引進的一些東東。

/*!40101 set @old_character_set_client=@@character_set_client */;

/*!40101 set @old_character_set_results=@@character_set_results */;

/*!40101 set @old_collation_connection=@@collation_connection */;

/*!40101 set names gbk */;

/*!40103 set @old_time_zone=@@time_zone */;

/*!40103 set time_zone='+00:00' */;

/*!40014 set @old_unique_checks=@@unique_checks, unique_checks=0 */;

/*!40014 set @old_foreign_key_checks=@@foreign_key_checks, foreign_key_checks=0 */;

/*!40101 set @old_sql_mode=@@sql_mode, sql_mode='no_auto_value_on_zero' */;

/*!40111 set @old_sql_notes=@@sql_notes, sql_notes=0 */;

MySQL對標準SQL的注釋擴充套件

之前一直不明白 mysql 注釋中的嘆號是什麼東西,直到看了下邊的 manual 文件中的內容。mysql 伺服器包含一些其他 sql dbms 中不具備的擴充套件。注意,如果使用了它們,將無法把 移植到其他 sql伺服器。在某些情況下,你可以編寫包含 mysql 擴充套件的 但仍保持其可移植性,方...

1 7 1 MySQL對標準SQL的擴充套件

mysql server支援某些您可能在其他sql dbms中找不到的擴充套件。請注意,如果使用它們,您的 將無法移植到其他sql server。在某些情況下,可以使用以下形式的注釋編寫包含mysql擴充套件但仍可移植的 在這種情況下,mysql伺服器將像其他任何sql語句一樣解析並執行注釋中的 但...

mysql中sql中的注釋

學習mysql好久了,oracle也是,但是經常使用oracle,有一天突然想,oracle的sql語法中有注釋,那麼mysql中是不是也有注釋,於是從網上搜了一下,原來mysql中的注釋還真不少,下面簡單介紹。mysql 伺服器支援 到該行結束 到該行結束 以及 行中間注釋,還有多個行 的注釋方格...