Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
57da4cca
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
57da4cca
编写于
12月 03, 2007
作者:
T
Tom Lane
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Improve partitioning example, per Itagaki Takahiro.
上级
531f5868
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
6 deletion
+16
-6
doc/src/sgml/ddl.sgml
doc/src/sgml/ddl.sgml
+16
-6
未找到文件。
doc/src/sgml/ddl.sgml
浏览文件 @
57da4cca
<
!-- $PostgreSQL: pgsql/doc/src/sgml/ddl.sgml,v 1.7
8 2007/12/02 19:20:32
tgl Exp $ -->
<
!-- $PostgreSQL: pgsql/doc/src/sgml/ddl.sgml,v 1.7
9 2007/12/03 04:59:55
tgl Exp $ -->
<
chapter
id
=
"ddl"
>
<
title
>
Data
Definition
</
title
>
...
...
@@ -2466,8 +2466,9 @@ CREATE TABLE measurement_y2008m01 ( ) INHERITS (measurement);
<
listitem
>
<
para
>
We
must
add
non
-
overlapping
table
constraints
,
so
that
our
table
creation
script
becomes
:
We
must
provide
non
-
overlapping
table
constraints
.
Rather
than
just
creating
the
partition
tables
as
above
,
the
table
creation
script
should
really
be
:
<
programlisting
>
CREATE
TABLE
measurement_y2006m02
(
...
...
@@ -2550,12 +2551,12 @@ CREATE TRIGGER insert_measurement_trigger
CREATE
OR
REPLACE
FUNCTION
measurement_insert_trigger
()
RETURNS
TRIGGER
AS
$$
BEGIN
IF
(
logdate
&
gt
;=
DATE
'2006-02-01'
AND
logdate
&
lt
;
DATE
'2006-03-01'
)
THEN
IF
(
NEW
.
logdate
&
gt
;=
DATE
'2006-02-01'
AND
NEW
.
logdate
&
lt
;
DATE
'2006-03-01'
)
THEN
INSERT
INTO
measurement_y2006m02
VALUES
(
NEW
.*);
ELSIF
(
logdate
&
gt
;=
DATE
'2006-03-01'
AND
logdate
&
lt
;
DATE
'2006-04-01'
)
THEN
ELSIF
(
NEW
.
logdate
&
gt
;=
DATE
'2006-03-01'
AND
NEW
.
logdate
&
lt
;
DATE
'2006-04-01'
)
THEN
INSERT
INTO
measurement_y2006m03
VALUES
(
NEW
.*);
...
ELSIF
(
logdate
&
gt
;=
DATE
'2008-01-01'
AND
logdate
&
lt
;
DATE
'2008-02-01'
)
THEN
ELSIF
(
NEW
.
logdate
&
gt
;=
DATE
'2008-01-01'
AND
NEW
.
logdate
&
lt
;
DATE
'2008-02-01'
)
THEN
INSERT
INTO
measurement_y2008m01
VALUES
(
NEW
.*);
ELSE
RAISE
EXCEPTION
'Date out of range. Fix the measurement_insert_trigger() function!'
;
...
...
@@ -2576,6 +2577,15 @@ LANGUAGE plpgsql;
it
doesn
't need to be updated as often, since branches can be
added in advance of being needed.
</para>
<note>
<para>
In practice it might be best to check the newest partition first,
if most inserts go into that partition. For simplicity we have
shown the trigger'
s
tests
in
the
same
order
as
in
other
parts
of
this
example
.
</
para
>
</
note
>
</
listitem
>
</
orderedlist
>
</
para
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录