選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

INSERT

焦點模式
INSERT - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將新資料列插入資料表中。您可以使用 VALUES 語法插入單一資料列、使用 VALUES 語法插入多個資料列,或是一個或多個由查詢結果所定義的資料列 (INSERT INTO...SELECT)。

注意

我們強烈鼓勵您使用 COPY 命令來載入大量資料。使用個別 INSERT 陳述式填入資料表的速度可能會相當慢。或者,如果您的資料已存在於其他 Amazon Redshift 資料庫資料表中,請使用 INSERT INTO SELECT 或 CREATE TABLE AS 來改善效能。如需使用 COPY 命令載入資料表的相關資訊,請參閱 在 Amazon Redshift 中載入資料

注意

單一 SQL 陳述式的大小上限為 16 MB。

語法

INSERT INTO table_name [ ( column [, ...] ) ] {DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ( { expression | DEFAULT } [, ...] ) [, ...] ] | query }

參數

table_name

暫時性或持久性資料表。只有資料表的擁有者,或具有資料表 INSERT 權限的使用者可以插入資料列。如果您使用 query 子句插入資料列,則必須具有查詢中所指名資料表的 SELECT 權限。

注意

使用 INSERT (外部資料表),將 SELECT 查詢結果插入外部目錄上的現有資料表。如需詳細資訊,請參閱INSERT (外部資料表)

欄位

您可以將值插入資料表的一個或多個資料欄。您可以依任意順序列出目標資料欄名稱。若您未指定資料欄清單,則要插入的值必須依照 CREATE TABLE 陳述式中宣告的順序對應資料表資料欄。若要插入的值數目少於資料表中的資料欄數,則會在前 n 個資料欄中載入。

任何未在 INSERT 陳述式中列出的資料欄中都會載入宣告的預設值或 null 值 (隱含或明確)。

DEFAULT VALUES

若在建立資料表時對資料表中的資料欄指派預設值,請使用這些關鍵字插入完全由預設值組成的資料列。若有任何資料欄未包含預設值,則會將 null 插入這些資料欄。若有任何資料欄宣告 NOT NULL,則 INSERT 陳述式會傳回錯誤。

VALUES

使用此關鍵字插入一個或多個資料列,每列包含一個或多個值。每列的 VALUES 清單必須符合資料欄清單。若要插入多個資料列,請使用逗號分隔符號分隔每份表達式清單。切勿重複 VALUES 關鍵字。多列 INSERT 陳述式的所有 VALUES 清單必須包含相同數目的值。

運算式

單一值,或判斷值為單一值的表達式。每個值都必須與其插入所在資料欄的資料類型相容。若值的資料類型與資料欄的宣告資料類型不相符,則會在可能的情況下自動轉換成相容的資料類型。例如:

  • 小數值 1.1 插入 INT 資料欄時會是 1

  • 小數值 100.8976 插入 DEC(5,2) 資料欄時會是 100.90

您可以在表達式中包含類型轉換語法,藉此明確將值轉換成相容的資料類型。例如,若資料表 T1 中的資料欄 COL1 是 CHAR(3) 資料欄:

insert into t1(col1) values('Incomplete'::char(3));

此陳述式會將值 Inc 插入資料欄。

若是單一資料列 INSERT VALUES 陳述式,您可以使用純量子查詢做為表達式。子查詢的結果會插入適當的資料欄中。

注意

多資料列 INSERT VALUES 陳述式中不支援使用子查詢做為表達式。

DEFAULT

使用此關鍵字可依資料表建立時所定義,插入資料欄的預設值。若資料欄沒有預設值,則會插入 null。若具有 NOT NULL 限制條件的資料欄在 CREATE TABLE 陳述式中沒有明確指定的預設值,則無法將預設值插入該資料欄。

query

藉由定義任何查詢將一個或多個資料列插入資料表。查詢產生的所有資料列都會插入資料表中。查詢必須傳回與資料表中資料欄相容的資料欄清單,但資料欄名稱不需相符。

使用須知

注意

我們強烈鼓勵您使用 COPY 命令來載入大量資料。使用個別 INSERT 陳述式填入資料表的速度可能會相當慢。或者,如果您的資料已存在於其他 Amazon Redshift 資料庫資料表中,請使用 INSERT INTO SELECT 或 CREATE TABLE AS 來改善效能。如需使用 COPY 命令載入資料表的相關資訊,請參閱 在 Amazon Redshift 中載入資料

所插入值的資料格式必須符合 CREATE TABLE 定義所指定的資料格式。

將大量新資料列插入資料表之後:

  • 清空資料表以回收儲存空間和重新排序資料列。

  • 分析資料表以更新查詢規劃器的統計資訊。

若插入 DECIMAL 資料欄的值超出指定的小數位數,則載入的值會適當捨入。例如,若將值 20.259 插入 DECIMAL(8,2) 欄,儲存的值會是 20.26

您可以插入至 GENERATED BY DEFAULT AS IDENTITY 資料欄。您可以利用您提供的值,更新定義為 GENERATED BY DEFAULT AS IDENTITY 的資料欄。如需詳細資訊,請參閱GENERATED BY DEFAULT AS IDENTITY

下一個主題:

INSERT 範例

上一個主題:

範例

在本頁面

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。