.\" auto-generated by docbook2man-spec $Revision: 1.1 $ .TH "INSERT" "7" "2003-11-02" "SQL - Language Statements" "SQL Commands" .SH NAME INSERT \- 在表中創建新行 .SH SYNOPSIS .sp .nf INSERT INTO \fItable\fR [ ( \fIcolumn\fR [, ...] ) ] { DEFAULT VALUES | VALUES ( { \fIexpression\fR | DEFAULT } [, ...] ) | \fIquery\fR } .sp .fi .SH "DESCRIPTION 描述" .PP \fBINSERT\fR 允許我們向表中插入新行。 我們可以一次插入一行或多行作為查詢結果。 .PP 目標列表中的列/字段可以按任何順序排列。 在目標列中沒有出現的列/字段將插入預設值, 可能是定義了的預設值或者 NULL。 .PP 如果每行的表達式不是正確的數據類型,系統將試圖進行自動的類型轉換。 .PP 要想向表中插入數據,你必須有 INSERT 權限, 如果你使用了 \fIquery\fR 子句插入來自查詢裏的數據行, 你還需要擁有在查詢裏使用的表的 SELECT 權限。 .SH "PARAMETERS 參數" .TP \fB\fItable\fB\fR 現存表的名稱(可以有模式修飾)。 .TP \fB\fIcolumn\fB\fR 表 \fItable\fR 中的字段名。 .TP \fBDEFAULT VALUES\fR 所有字段都會用它們的預設值填充。 .TP \fB\fIexpression\fB\fR 賦予 \fIcolumn\fR 的一個有效表達式或值。 .TP \fBDEFAULT\fR 這個字段將被字段它的填充。 .TP \fB\fIquery\fB\fR 一個查詢(SELECT 語句),它提供插入的數據行。 請參考 SELECT 語句獲取語法描述。 .SH "OUTPUTS 輸出" .PP 成功完成後,一條 INSERT 命令返回一個下面形式的命令標簽 .sp .nf INSERT \fIoid\fR \fIcount\fR .sp .fi \fIcount\fR 是插入的行數。 如果 \fIcount\fR 正好是一,並且目標表有 OID, 那麼 \fIoid\fR 是賦予插入行的 OID。 否則 \fIoid\fR 是零。 .SH "EXAMPLES 例子" .PP 向表 films 裏插入一行: .sp .nf INSERT INTO films VALUES ('UA502', 'Bananas', 105, '1971-07-13', 'Comedy', '82 minutes'); .sp .fi .PP 在第二個例子裏面省略了字段 len 因此在它裏面將只存儲預設的 NULL 值: .sp .nf INSERT INTO films (code, title, did, date_prod, kind) VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama'); .sp .fi .PP 在第三個例子裏,我們用 DEFAULT 值作為數據字段,而不是聲明一個數值: .sp .nf INSERT INTO films VALUES ('UA502', 'Bananas', 105, DEFAULT, 'Comedy', '82 minutes'); INSERT INTO films (code, title, did, date_prod, kind) VALUES ('T_601', 'Yojimbo', 106, DEFAULT, 'Drama'); .sp .fi .PP 從表 tmp 中插入幾行到表 films 中: .sp .nf INSERT INTO films SELECT * FROM tmp; .sp .fi .PP 插入數組: .sp .nf -- 創建一個空的 3x3 遊戲板來玩圈-和-叉遊戲 -- (所有這些查詢創建相同的遊戲) INSERT INTO tictactoe (game, board[1:3][1:3]) VALUES (1,'{{"","",""},{},{"",""}}'); INSERT INTO tictactoe (game, board[3][3]) VALUES (2,'{}'); INSERT INTO tictactoe (game, board) VALUES (3,'{{,,},{,,},{,,}}'); .sp .fi .SH "COMPATIBILITY 相容性" .PP \fBINSERT\fR 完全遵循 SQL 標準。可能碰到的關於 \fIquery\fR 子句特性的限制在 SELECT [\fBselect\fR(7)] 語句中有相關文件。 .SH "譯者" .B Postgresql 中文網站 .B 何偉平