JavaDB/Derby を使用してテーブルとその名前を小文字で作成することは可能ですか? テーブルが存在するかどうかを確認するには、次を使用しています。
ResultSet rs = dbmd.getTables(null, "APP", "user_properties", null);
if (!rs.next()) {/*do something*/};
ただし、テーブル名「user_properties」は、カタログのケースと一致する必要があります。
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()