我已经搭建好了一个 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
显示bigserial
,但在test
模式中reference
显示bigint
和nextval
?两者都按预期工作。我只是不明白为什么模式的差异会显示不同的表创建。我意识到bigint和bigserial允许使用相同数量的整数。