Java DB/Derby - テーブル(列)名の空白 - エスケープする方法は? MySQL データベースでは、単に `` (アクセント記号) でエスケープされますが、次のようなクエリ (Java DB) を実行しようとすると、次のようになります。
CREATE TABLE `etc etc` (ID INT PRIMARY KEY, Title VARCHAR(12))
エラーが発生します:
java.sql.SQLSyntaxErrorException: 行 1、列 14 で字句エラーが発生しました。検出: "`" (96)、後: ""。
解決策はありますか?
編集:
本当に包括的な回答をありがとう。興味深いものを見つけました(Java DB):
次のようなテーブルを作成しても問題ありませんでした。
CREATE TABLE "etc etc" (ID INT PRIMARY KEY, Title VARCHAR(12))
後で結果を取得するには:
SELECT * FROM "etc etc"
しかし、次のようにテーブルを作成すると (空白と引用符なし):
CREATE TABLE etc_etc (ID INT PRIMARY KEY, Title VARCHAR(12))
後で次のような結果が得られます (二重引用符を使用します。たとえば、二重引用符は実際には必要ありません)。
SELECT * FROM "etc_etc"
エラーが発生します:
java.sql.SQLSyntaxErrorException: テーブル/ビュー 'etc_etc' が存在しません。
したがって、私の結論は、テーブルの作成中に引用符が使用された場合 (名前に空白が含まれているかどうかは重要ではありません)、後で結果を取得するときにも引用符を使用する必要があるということです。逆もまた同様です(この場合、もちろん空白なしで)。
文字の代わりに空白を使用しない方がよいことに同意します_
。しかし、私はMySQLでこれらの`グレイブアクセント文字が好きでした...