-1

次のステートメントを実行すると、テーブルは作成されますが、列はありません。

CREATE TABLE "mod_1237" ("Collecteddepth" float8 NOT NULL, "Collectedtime"
float8 NOT NULL, "CollectedData" Varchar(45) NOT NULL, "Collectedpass"
float8 NOT NULL, "Collectedmodtime" float8 NOT NULL) WITH (OIDS = FALSE);

主キーを作成していないことはわかっていますが、それによって列の生成が妨げられることはありません。このコードを実行してもエラーは発生しないため、テーブルに書き込もうとするまではすべて問題ないように見えます。なぜこれが機能しないのか、または指定された列でテーブルを作成する方法についてのアイデアはありますか?

Windows Server Standard SP2 で PostgreSQL バージョン 9.1.4 を使用しています

4

2 に答える 2

1

これは、質問が相互投稿された PostgreSQL メーリング リストで Hubert ("Depesz") によって回答されました。ここでそれを読んでいる人の参考のために、ここに答えがあります。まだアーカイブに追加されていないため、そのリンクはしばらくの間 404 になるため、ハーバートの回答を以下に再現します。


ほとんどの場合、次のように挿入しました:

insert into mod_1237 (Collecteddepth) values (...)

つまり、列名を引用していません。したがって、問題。

psql では、次のことができます。

\d mod_1237

列が表示されます。

よろしくお願いします、

デペス

つまり、テーブル定義で名前を二重引用符で囲む場合は、それらを参照する場所でも二重引用符で囲みます。

これは FAQ です。見る:

もっと。

于 2012-11-14T01:01:06.027 に答える
0

引用符は不要なので削除してください。

CREATE TABLE mod_1237 (Collecteddepth float8 NOT NULL, Collectedtime float8 NOT NULL, CollectedDate Varchar(45) NOT NULL, Collectedpass float8 NOT NULL, Collectedmodtime float8 NOT NULL) WITH (OIDS = FALSE);
于 2012-11-13T17:34:56.267 に答える