我有一个 PgSQL 9.4.3 服务器设置,之前我只使用公共模式,例如我创建了一个如下表:
CREATE TABLE ma_accessed_by_members_tracking (
reference bigserial NOT NULL,
ma_reference bigint NOT NULL,
membership_reference bigint NOT NULL,
date_accessed timestamp without time zone,
points_awarded bigint NOT NULL
);
使用 Windows 程序 PgAdmin III,我可以看到它创建了正确的信息和序列。
不过,我最近在同一个数据库中添加了另一个名为“test”的模式,并创建了完全相同的表,就像以前一样。
然而这次我看到:
CREATE TABLE test.ma_accessed_by_members_tracking
(
reference bigint NOT NULL DEFAULT nextval('ma_accessed_by_members_tracking_reference_seq'::regclass),
ma_reference bigint NOT NULL,
membership_reference bigint NOT NULL,
date_accessed timestamp without time zone,
points_awarded bigint NOT NULL
);
我的问题/好奇心是为什么public
架构reference
shows bigserial
但在test
schema reference
shows bigint
with a nextval
?
两者都按预期工作。我只是不明白为什么模式的差异会显示不同的表创建。我意识到 bigint 和 bigserial 允许使用相同数量的整数。