2

テーブルを作成するときはいつでもCREATE TABLE table_name、データベース システムのいずれかで指定します。postgre でテーブルを作成するときは、 CREATE TABLE "tabl_name". " "postgreSqlでテーブルを作成するために二重引用符を使用している場合、違いはありますか.

4

3 に答える 3

3

テーブル名を二重引用符で囲むと、名前の大文字と小文字が区別されます。デフォルトでは、引用符で囲まれていないテーブル名 (および一般的な識別子) は、大文字と小文字が区別されません。

たとえば、引用符なしで次の create ステートメントを使用します。 CREATE TABLE TestTable...

次のすべてを使用してテーブルを参照できることを意味します: TESTTABLE、testtable、TesTTabLe

一方、create ステートメントで引用符を使用した場合: CREATE TABLE "TestTable"...

このテーブルを参照するために使用できるのは「TestTable」のみであり、他のテーブルは機能しません。

マニュアルには、まさにこのトピックに関するセクションが含まれており、より詳細に説明しています: http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

于 2012-08-29T08:33:38.160 に答える
1

実際にはいくつかの違いがあります。

二重引用符は、含まれているものが大文字と小文字を区別する識別子であり、文字通り読み取られることをパーサーに通知します。

これは多くの違いにつながります。次のようなことができます。

CREATE TABLE "table" ( ... );

だがしかし

CREATE TABLE table (...);

大文字と小文字が区別されるだけでなく(PostgreSQLは引用符で囲まれていない識別子を小文字に折りたたむ)、それ以外の場合は禁止されているキーワードを含めることができます。

ただし、これは、後で次のようなものを使用する必要があることを意味します。

SELECT * FROM "table"

しかし、あなたはできません

SELECT * FROM table
于 2012-08-29T10:38:28.113 に答える
0

小文字のみを使用しても違いはありません (大文字にする必要があるという SQL 標準とは異なります)。

引用符なしで大文字を使用すると、小文字に変換されます。

引用符で大文字を使用すると、変換されず、このテーブル (または列またはその他の識別子) にアクセスするために常に大文字を使用する必要があります。

最良の方法は、識別子に引用符を使用しないことです。

于 2012-08-29T08:30:29.403 に答える