-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

Hubert(“Depesz”)在 PostgreSQL 邮件列表上回答了这个问题,该问题被交叉发布。供任何在这里阅读它的人参考,这里是答案。由于尚未将其添加到档案中,该链接将在一段时间内出现 404,因此我将在下面复制 Herbert 的答案:


您很可能确实插入了:

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

即你没有引用列名。因此问题。

在 psql 中,您可以执行以下操作:

\d mod_1237

你会看到列在那里。

此致,

德佩斯

换句话说:如果您在表定义中使用双引号,请在您引用它们的任何地方双引号。

这是一个常见问题解答;看:

和更多。

于 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 回答