9.6. MySQL中保留字的處理

來源:互聯網
上載者:User

標籤:

嘗試使用一個識別符,例如使用嵌入式MySQL 資料類型或函數名作為表名或列名,例如TIMESTAMP 或GROUP ,會造成一個常見問題。允許你這樣操作( 例如,ABS 可以作為一個列名) 。但是,預設情況下,在數調用中在函數名和後面的‘( ’字元之間不允許有空格。該要求使函數調用與列名引用不同。

該行為的不利結果是在某些上下文中省略一個空格會使識別符解釋為函數名。例如,該語句合法:

mysql>CREATE TABLE abs (val INT);

但省略abs 後面的空格會造成語法錯誤,因為省略後該語句好像要調用ABS() 函數:

mysql>CREATE TABLE abs(val INT);

如果SQL 伺服器模式包括IGNORE_SPACE 模式值,伺服器允許函數調用時在函數名和後面的‘( ’字元之間有空格。這樣使函數名被視為保留字。結果是,與函數名相同的識別符必須按照9.2節,“資料庫、表、索引、列和別名”中所描述的引起來。SQL 伺服器模式按照5.3.2節,“SQL伺服器模式”中所描述的進行控制。

限定名中句點後面的字必須為一個識別符,因此不需要將它引起來,即使它是一個保留字。

在MySQL 中,下表中的字顯式被保留。其中大多數字進位被標準SQL 用作列名和/ 或表名( 例如,GROUP ) 。少數被保留了,因為MySQL 需要它們,( 目前) 使用yacc解析程式。保留字被引起來後可以用作識別符。

 

MySQL 允許部分關鍵字用做未引起來的識別符,因為許多人以前曾使用過它們。下面列出了一些例子:

 

  •  

  •  

    ACTION

     

  •  

    BIT

     

  •  

    DATE

     

  •  

    ENUM

     

  •  

    NO

     

  •  

    TEXT

     

  •  

    TIME

     

  •  

    TIMESTAMP

9.6. MySQL中保留字的處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.