2012-04-19 47 views
0

是否可以使用ALTER语句将OID添加到表中?创建OID到Postgres表创建后

编辑:我要补充,我使用PG 8.3,并且比需要输入你的问题,你可以去了手动8.3手动不会列出选项

http://www.postgresql.org/docs/8.3/static/sql-altertable.html

+0

你为什么认为你需要它? OID已过时,不应使用。无论如何你不应该使用8.3。它很快就会退休。 – 2012-04-19 21:25:32

+0

OID已被弃用为表格的(不可见)系统列。 OID的许多其他用途不受此影响。 – 2012-04-19 22:26:09

回答

1

在这种情况下,你必须在manual for PostgreSQL 8.3那里你的答案:

注意,不存在ALTER TABLE变种,它允许的OID是 恢复到一个表,一旦他们已被删除。

所以答案是没有

SET WITH OIDS其后不久实施with version 8.4

但我想不出一个很好的理由去做这件事。用户表中的OID,这是一个开始的概念。甩掉包袱。

1

在更短的时间,看着页面的“ALTER TABLE”

http://www.postgresql.org/docs/9.1/static/sql-altertable.html

答案是肯定的,但是这是一个无聊的问题。

一个有趣的问题是为什么你认为你想要他们?我90%确定你确实没有。

+0

我确实去过那里,出于某种原因,当我为OID做“Ctrl + f”时,我只看到'没有OID'选项。谢谢 – nulltorpedo 2012-04-19 21:18:48

+1

我想纠正自己。我正在使用Postgres 8.3,8.3手册不显示“With OID”选项http://www.postgresql.org/docs/8.3/static/sql-altertable.html – nulltorpedo 2012-04-19 21:20:59

4

这是在PostgreSQL 9.2:

ALTER TABLE "myTable" SET WITH OIDS; 

我希望这对你有用。

+0

为我工作:) – kirti 2015-07-13 08:57:49