我正在学习Postgresql和db。我有一个像这样的简单查询,我想了解它的作用
CREATE TABLE adempiere.c_mom(
c_mom_id NUMERIC(10,0) NOT NULL,
isactive character(1) DEFAULT 'Y'::bpchar NOT NULL,
start_date date NOT NULL,
start_time timestamp without time zone NOT NULL,
end_time timestamp without time zone NOT NULL,
CONSTRAINT c_mom_pkey PRIMARY KEY (c_mom_id)
);
所以在我执行完之后我得到了
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "c_mom_pkey" for table "c_mom"
is c_mom_id
,但是在名称c_mom_key
下创建隐式索引的目的是什么?DEFAULT 'Y'::bpchar
或psql中::
的一般内容是什么?谢谢
答案 0 :(得分:2)
::
表示法是PostgreSQL特定的type cast表示法,在这种情况下键入bpchar
(空白填充的字符)。
创建索引以备份主键以使其有效。如果没有索引来支持它,则每个insert语句都必须扫描整个表,以确定该插入是否会创建重复键。使用索引加速(如果表很大,则显着)。
这不是PostgreSQL特有的。许多关系数据库将创建唯一的索引来支持主键。