繁体   English   中英

MySql注释语法 - “#”和“ - ”之间的区别是什么

[英]MySql Comment Syntax - What's the difference between “#” and “— ”

根据文档 ,有两种方法可以在MySql中对一行的末尾进行注释:

  • "#"
  • "-- "

这些之间有什么区别吗?

如果是这样,我应该何时使用其中一个?

如果没有,有谁知道为什么两者都支持?

对我来说似乎很奇怪,特别是当带连字符的版本与标准SQL语法略有不同时。

只有你希望你的SQL可移植才真正重要。 例如--在Sqlite和Postegresql中注释是可以的,而#不是。 你最好的选择是使用--跟随空格。 (据我所知,我几乎没见过任何其他东西)

正如你提供的链接清楚地解释它--是标准的SQL“评论分隔符”。 MySQL脱离标准的地方是在需要空格之后--被识别为注释。 “标准”SQL不要求这样做。

为了提供示例,在以下代码中, --被识别为注释标记:

mysql> CREATE TABLE T(C int);   -- This is my new table
Query OK, 0 rows affected (0.18 sec)

但请注意交互式解释器在没有空间行为不正常--

mysql> CREATE TABLE T(C int);   --This is my new table
Query OK, 0 rows affected (0.24 sec)

    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--This is my new table' at line 1

MySQL支持其他一些注释格式以适应各种程序员的习惯: #喜欢许多脚本语言和/* ... */喜欢C.令人惊讶的是//还不是它们的一部分。

mysql> CREATE TABLE T(C int);   /* This is my new table */
Query OK, 0 rows affected (0.22 sec)

mysql> CREATE TABLE T(C int);   # This is my new table
Query OK, 0 rows affected (0.24 sec)

Oracle和SQL Server(以及DB2和其他)都支持 - 和/ * * /(多行)注释标准。 因此,在MySQL中使用相同的样式是一个好习惯,因为您可能会遇到在多个环境中编程的情况。

之后对空间的要求是一个奇怪的MySQL,但它并不是一个大问题,因为它有助于清晰。

当然,如果您使用了大量的perl和MySQL,那么您可以选择#comments作出类似的原因......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM