MySQLについての質問です。

phpMyAdminにてSQLを吐き出させてみました。
DROP TABLE IF EXISTS `tbl_bbs`;
このバックスラッシュは必須でしょうか?
なんでバックスラッシュをつかわれているのでしょうか???
(カンマじゃないのが言語仕様?)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/04/04 14:57:20
  • 終了:--

回答(3件)

id:typista No.1

typista回答回数359ベストアンサー獲得回数72005/04/04 16:54:05

ポイント24pt

以下は、公式サイト(1つ目のURL)の引用ですが、仕様といえば仕様のようです。

---

識別子が予約語である場合や、識別子に特殊文字が含まれている場合は、引用符として使用したバッククォート(「`」)文字でその識別子を必ず囲む必要があります。

---


2つ目のURLの

「データベースの追加・削除」

を見ていただくと、ハイフン付きのデータベース名だとエラーになるとのことなので、総じて、phpMyAdminでは(本来の仕様でもあり)安全のために`(バッククォート)を付加しているのだと思います。

→ tbl_bbsの場合は無くても問題ありません。

※特殊文字(厳密には調べきれていませんが、演算子になり得る文字でしょう)を使っているテーブル名、予約語(selectやorderなど)にあるテーブル名の場合には必須となります。


http://www.marronkun.net/linux/other/mysql_2.html

MySQL基本操作 : マロンくん.NET

id:nakeyouguisu

引用符自体で囲む事は丁寧なやりかたなのかなとは思うのですが、バッククォートはなかなかものめずらしいです。

バックスラッシュはミスです。皆様おきになさらずに。

2005/04/04 19:13:20
id:informalattract No.2

informalattract回答回数5ベストアンサー獲得回数02005/04/04 17:43:36

ポイント23pt

「バックスラッシュ」じゃなくて「バッククォート」ですね。


予約語や特殊文字を含むテーブル名になっている場合を想定して、自動生成のSQLではバッククォートで囲っているのではないでしょうか。


このURLを既に回答なさっている方がいるようですが

(ダブってたらポイントいりません)

http://netmirror.org/mirror/mysql.com/doc/mysql/ja/legal-names.h...


>識別子が予約語である場合や、識別子に特殊文字が含まれている場合は、引用符として使用したバッククォート(「`」)文字でその識別子を必ず囲む必要があります。

id:nakeyouguisu

と、思ったらやはり皆様気になるようですね。

了解です。

2005/04/04 19:13:57
id:ukp No.3

ukp回答回数15ベストアンサー獲得回数02005/04/04 17:51:16

ポイント23pt

>カンマじゃないのが~


仰るとおり文字列であることを明示するときに必要になります。テーブル名にMySQLの特殊文字を使用している場合はバックスラッシュが無いとエラーになります。

id:nakeyouguisu

カンマ・・・

これもクオートのミスです。

ありがとうございました。

2005/04/04 19:15:13

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません