支援的版本: 目前 (17) / 16 / 15 / 14 / 13
開發版本: devel
不再支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

67.4. BKI指令 #

create tablename tableoid [bootstrap] [shared_relation] [rowtype_oid oid] (name1 = type1 [FORCE NOT NULL | FORCE NULL ] [, name2 = type2 [FORCE NOT NULL | FORCE NULL ], ...])

建立名為 tablename 的表格,並具有 OID tableoid,括號內為欄位。

bootstrap.c 直接支援以下欄位類型:boolbyteachar (1 byte)、nameint2int4regprocregclassregtypetextoidtidxidcidint2vectoroidvector_int4 (陣列)、_text (陣列)、_oid (陣列)、_char (陣列)、_aclitem (陣列)。雖然可以建立包含其他類型欄位的表格,但在 pg_type 建立並填入適當的項目之前,無法這樣做。(這實際上意味著只有這些欄位類型可以用於啟動目錄,但非啟動目錄可以包含任何內建類型。)

如果指定了 bootstrap,則表格只會在磁碟上建立;不會在 pg_classpg_attribute 等中輸入任何內容。因此,在以手動方式(使用 insert 指令)建立這些項目之前,一般 SQL 操作無法存取該表格。此選項用於建立 pg_class 等本身。

如果指定了 shared_relation,則會將表格建立為共用。表格的列類型 OID(pg_type OID)可以選擇性地透過 rowtype_oid 子句指定;如果未指定,則會自動產生 OID。(如果指定了 bootstraprowtype_oid 子句沒有用處,但仍然可以為了文件目的提供。)

open tablename

開啟名為 tablename 的表格以插入資料。任何目前已開啟的表格都會被關閉。

close tablename

關閉已開啟的表格。必須提供表格名稱作為交叉檢查。

insert ( [oid_value] value1 value2 ... )

使用 value1value2 等作為其欄位值,將新列插入到已開啟的表格中。

可以使用特殊關鍵字 _null_ 指定 NULL 值。看起來不像識別碼或數字字串的值必須用單引號引起來。(要在值中包含單引號,請將其寫兩次。字串中也允許逸出字串樣式的反斜線逸出。)

declare [unique] index indexname indexoid on tablename using amname ( opclass1 name1 [, ...] )

在名為 tablename 的表格上建立名為 indexname 的索引,具有 OID indexoid,使用 amname 存取方法。要索引的欄位稱為 name1name2 等,要使用的運算子類別分別為 opclass1opclass2 等。索引檔案已建立,並且已為其建立適當的目錄項目,但此指令不會初始化索引內容。

declare toast toasttableoid toastindexoid on tablename

為名為 tablename 的表格建立 TOAST 表格。TOAST 表格被分配 OID toasttableoid,其索引被分配 OID toastindexoid。與 declare index 相同,索引的填充被延遲。

build indices

填入先前已宣告的索引。

提交更正

如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的內容,請使用此表格來報告文件問題。