どーも、最近ベランダでビール飲むのにはまってます。
すずしくて気持ちええです。
普段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ってなんだかんだ、似てるからだいたい同じやろって
思ってたけど、改めて違いを認識。
コマンドでもデータベース切り替えの書き方違ったりで、なかなか勉強になりました。
「MySQLとPostgreSQLのコメントの書き方のちがい」への1件のフィードバック