重命名在另一个表中用作引用的表

时间:2014-10-04 08:01:19

标签: sql postgresql django-database

我创建了两个PostgreSQL表表(代码来自Django应用程序):

CREATE TABLE "app_book" (
    "id" serial NOT NULL PRIMARY KEY,
    "title" varchar(256)
);
CREATE TABLE "app_author" (
    "book_ptr_id" integer NOT NULL PRIMARY KEY REFERENCES "app_book" ("id") DEFERRABLE INITIALLY DEFERRED,
    "name" varchar(128) NOT NULL
);

我想将表格app_book重命名为app_item。以下行是否足够,或者我是否还必须更新app_author中的参考?如果是这样,我该怎么做?

ALTER TABLE app_book RENAME TO app_item;

this page,我猜它没有。但该页面没有解释如何更新参考。

1 个答案:

答案 0 :(得分:1)

亲眼看看http://sqlfiddle.com/#!15/0dd1f/5

链接中描述的问题仅涉及使用Slony时的问题。

如果您可以接受id列后面的序列不反映名称更改这一事实,那么一切都很好。如果它困扰你,你也需要重命名序列。请注意,pg_get_serial_sequence()仍然有效。