2

JavaDB/Derby を使用してテーブルとその名前を小文字で作成することは可能ですか? テーブルが存在するかどうかを確認するには、次を使用しています。

ResultSet rs = dbmd.getTables(null, "APP", "user_properties", null);
if (!rs.next()) {/*do something*/};

ただし、テーブル名「user_properties」は、カタログのケースと一致する必要があります。

4

1 に答える 1

10

Derby は、引用符で囲まれていない識別子を大文字に変換する必要がある ANSI 標準に従っています。したがって、次のステートメント:

create table user_properties
(
   id integer not null
);

という名前のテーブルを作成し、 という名前USER_PROPERTIESの列を作成しますID

引用符で囲まれた識別子を使用して、Derby に小文字 (または実際には大文字と小文字が混在する) の名前を格納するように強制できます。

create table "user_properties"
(
   "id" integer not null
);

という名前のテーブルを作成し、 という名前user_propertiesの列を作成しますid

引用符で囲まれた識別子 (別名「区切り識別子」) を使用すると、大文字と小文字が区別されるため、2 番目のテーブルは常に二重引用符を使用して参照する必要があります。

テーブルが 2 番目のステートメントで作成された場合、ステートメントは機能しませselect * from user_properties常に引用する必要があります: select * from "user_properties".

引用符で囲まれた識別子を使用すると、通常、価値があるよりもはるかに多くの問題が発生します。識別子を引用したことがない場合は、呼び出しで大文字の名前を安全に使用できますgetTables()

于 2013-10-03T10:39:35.387 に答える