MySQLとPostgreSQLのコメントの書き方のちがい

 

どーも、最近ベランダでビール飲むのにはまってます。

すずしくて気持ちええです。

 

普段PostgreSQLを使うことが多かったのですが、

MySQLを久々触る機会があったので、ある違和感感じました!

コメントの書き方が違う!!!

 

例えばこんなテーブルがあるとします。(PostgreSQLにて)

test_db=#SELECT *FROM test_table;
id | title | body
----+--------+----------------
1 | top | トップですよ。
2 | detail | 詳細ですよ。

 

「–」をつかったコメントを入りのSELECT文。よく使ってるやつ。

PostgreSQLでは問題なく使える。コメントって認識してくれてる。うん。

test_db=# SELECT
test_db-# id,
test_db-# --nameはいらない
test_db-# body
test_db-# FROM
test_db-# test_table;
id | body
----+----------------
1 | トップですよ。
2 | 詳細ですよ。
(2 rows)

 

 

\しかし/

MySQLだとお。。。

mysql> SELECT * FROM test_table;
+----+--------+-----------------------+
| id | title | body |
+----+--------+-----------------------+
| 1 | top | トップですよ。 |
| 2 | detail | 詳細ですよ。 |
+----+--------+-----------------------+

 

 

「–」をつかったコメントを入りのSELECT文。MySQLでは怒られる。

「–」以下をカラムと認識してる。コメントって認識してないみたい。

mysql> SELECT
-> id,
-> --nameはいらない
-> body
-> FROM
-> test_table
-> ;
ERROR 1054 (42S22): Unknown column 'nameはいらない' in 'field list'

 

 

調べてみたら、MySQLの場合、「–」の後に半角スペースがいるみたい。

参考:https://dev.mysql.com/doc/refman/5.6/ja/comments.html

まじだった・・・。半角スペースいれたらできたし!

mysql> SELECT
-> id,
-> -- nameはいらない
-> body
-> FROM
-> test_table
-> ;
+----+-----------------------+
| id | body |
+----+-----------------------+
| 1 | トップですよ。 |
| 2 | 詳細ですよ。 |
+----+-----------------------+
2 rows in set (0.00 sec)

 

 

他にも….

●「#」をつかったコメントを入りのSELECT文。お!コメントって認識したみたい。

※「#」の後に、半角スペースはない。

mysql> SELECT
-> id,
-> #nameはいらない
-> body
-> FROM
-> test_table
-> ;
+----+-----------------------+
| id | body |
+----+-----------------------+
| 1 | トップですよ。 |
| 2 | 詳細ですよ。 |
+----+-----------------------+
2 rows in set (0.00 sec)

 

●「/*」「*/」をつかったコメントを入りのSELECT文。

※「/*」の後に、半角スペースはない。

※ 改行しても「/*」「*/」内はコメントとして認識

mysql> SELECT
-> id,
-> /*
/*> nameはいらない
/*> */
-> body
-> FROM
-> test_table
-> ;
+----+-----------------------+
| id | body |
+----+-----------------------+
| 1 | トップですよ。 |
| 2 | 詳細ですよ。 |
+----+-----------------------+
2 rows in set (0.00 sec)

 

 

\ちなみに!/

PosgreSQLでも「/*」「*/」は使えたーーーーーーーーあ。

全くしらんかった….

test_db=# SELECT
test_db-# id,
test_db-# /*
test_db*# nameはいらない
test_db*# */
test_db-# body
test_db-# FROM
test_db-# test_table
test_db-# ;
id | body
----+----------------
1 | トップですよ。
2 | 詳細ですよ。
(2 rows)

 

 

まあ、けど、PosgreSQLで「#」は使えないみたいです。

test_db=# SELECT
test_db-# id,
test_db-# #nameはいらない
test_db-# body
test_db-# FROM
test_db-# test_table
test_db-# ;
ERROR: column "nameはいらない" does not exist
LINE 3: #nameはいらない

 

 

PostgreSQLとMySQLってなんだかんだ、似てるからだいたい同じやろって

思ってたけど、改めて違いを認識。

コマンドでもデータベース切り替えの書き方違ったりで、なかなか勉強になりました。

 

投稿者:

kin29man

農学部卒の4年目エンジニアです👩‍💻 レベル低いですが、よろしくお願いします!

「MySQLとPostgreSQLのコメントの書き方のちがい」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です