Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
バッククォートは万能!!
バッククォートでデータベース名を囲むと、どんな名前のデータベースも 大丈夫なのかも知れない。
スペースも可能なのかも知れない。
mysql> CREATE DATABASE `A B C`; Query OK, 1 row affected (0.00 sec) mysql>
間のスペースはOKみたいだ。
では、最初と最後に入れた場合をやってみよう。
mysql> CREATE DATABASE ` A`; Query OK, 1 row affected (0.00 sec) mysql> CREATE DATABASE `A `; ERROR 1102 (42000): Incorrect database name 'A ' mysql>
ということで、スペースは、最後には入れられないが、 それ以外の場所(先頭または途中)なら挿入可能なようだ。 しかし、こんな変なことはしない方が無難だ。
バッククォートが付くのが正式なのでは
前々回のSHOW CREATE DATABASEの出力中の`は何だろうにおいて
mysql> CREATE DATABASE 元帳;
Query OK, 1 row affected (0.00 sec)
mysql> SHOW CREATE DATABASE 元帳\G
*************************** 1. row ***************************
Database: 元帳
Create Database: CREATE DATABASE `元帳` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec)
mysql>
という動きをするのを問題視した。 CREATE DATABASE ではバッククォートで囲まなかったのに、 SHOW CREATE DATABASE の出力には、しっかりとバッククォートが付いていた。
では、漢字でなくても、ごく普通のASCII文字でも バッククォートがつくのかも知れない。
mysql> CREATE DATABASE abc;
Query OK, 1 row affected (0.00 sec)
mysql> SHOW CREATE DATABASE abc\G
*************************** 1. row ***************************
Database: abc
Create Database: CREATE DATABASE `abc` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec)
mysql>
abcというアルファベットだけのとても安全と考えられるデータベース名の 場合でも、しっかりとバッククォートされている。 ということは、SHOW CREATE DATABASES では、常にバッククォートされて 表示されるのではないだろうか。
ところで、SHOW CREATE DATABASE の出力結果をそのまま使うと 同じ事(この場合はデータベースの作成)が出来るはずである。
mysql> DROP DATABASE abc; Query OK, 0 rows affected (0.00 sec) mysql> CREATE DATABASE `abc`; Query OK, 1 row affected (0.00 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | abc | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec) mysql>
一旦消去してから、`abc` と指定したら、ちゃんとできている。
ということは、データベース名は、常にバッククォートで囲むべきである。
データベース名は、常にバッククォートで囲むべきである。
日本語は特殊文字扱いなのか?
さて、マニュアル中に出て来た「特殊文字」とは一体何なのだろうか? もしかして、日本語は特殊文字扱いなのだろうか。
フィードバック:
There is no comment.