良好的註釋是可維護 SQL 的基石。MySQL 支持三種註釋風格,並隨版本引入特有擴展。
| 風格 | 語法 | 範圍 | 示例 |
|---|---|---|---|
| Shell/單行 | # 註釋內容 | 從 # 到行尾 | SELECT * FROM t; # 獲取所有數據 |
| C 風格/多行 | /* 註釋內容 */ | 跨行,可嵌套在語句中 | SELECT /* 這是註釋 */ id FROM t; |
| SQL 標準/單行 | -- 註釋內容 | 從 -- (雙減號+空格)到行尾 | SELECT * FROM t; -- 獲取所有數據 |
/*! ... */ **版本專用註釋**。MySQL 解析器會執行其中的 SQL,其他數據庫視為普通註釋忽略。INSERT /*! DELAYED */ INTO t VALUES(1); → MySQL 執行 INSERT DELAYED,其他庫執行普通 INSERT。-- (雙減號+空格)作為單行註釋,兼容標準 SQL。注意:必須有空格,否則 5--7 會被誤判為註釋開始。/* ... */,便於多行與工具提取。#(MySQL 慣例)或 -- (標準兼容)。/*! MySQL專用語法 */ 封裝 DELAYED、HIGH_PRIORITY、STRAIGHT_JOIN 等 Hint。--,防止表達式誤解析。mysqldump 導出默認包含 /*!40101 SET NAMES utf8 */ 等版本註釋。