本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CREATE TABLE
CREATE TABLE 可定義新的資料表。
CREATE TABLE [ IF NOT EXISTS ] table_name ( [ { column_name data_type [ STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ] [ column_constraint [ ... ] ] | table_constraint | LIKE source_table [ like_option ... ] } [, ... ] ] ) where column_constraint is: [ CONSTRAINT constraint_name ] { NOT NULL | NULL | CHECK ( expression )| DEFAULT default_expr | GENERATED ALWAYS AS ( generation_expr ) STORED | GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY ( sequence_options ) | UNIQUE [ NULLS [ NOT ] DISTINCT ] index_parameters | PRIMARY KEY index_parameters | and table_constraint is: [ CONSTRAINT constraint_name ] { CHECK ( expression ) | UNIQUE [ NULLS [ NOT ] DISTINCT ] ( column_name [, ... ] ) index_parameters | PRIMARY KEY ( column_name [, ... ] ) index_parameters | and like_option is: { INCLUDING | EXCLUDING } { COMMENTS | CONSTRAINTS | DEFAULTS | GENERATED | IDENTITY | INDEXES | STATISTICS | ALL } index_parameters in UNIQUE, and PRIMARY KEY constraints are: [ INCLUDE ( column_name [, ... ] ) ]
身分資料欄
注意
使用身分資料欄時,應仔細考慮快取值。如需詳細資訊,請參閱 CREATE SEQUENCE 頁面上的重要標註。
如需如何根據工作負載模式以最佳方式使用身分資料欄的指引,請參閱 使用序列和身分資料欄。
GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY ( 子句會將資料欄建立為身分資料欄。它將有一個隱含序列連接到它,在新插入的資料列中,資料欄將自動具有來自指派給它的序列的值。這類資料欄隱含為 sequence_options )NOT NULL。
子句ALWAYS和 會BY DEFAULT決定在 INSERT和 UPDATE命令中明確處理使用者指定值的方式。
在 INSERT命令中,如果選取 ALWAYS ,則只有在INSERT陳述式指定 時,才會接受使用者指定的值OVERRIDING SYSTEM VALUE。如果選取 BY DEFAULT ,則使用者指定的值優先。
在 UPDATE命令中,如果選取 ALWAYS ,則會DEFAULT拒絕將資料欄更新為 以外的任何值。BY DEFAULT 如果選取 ,則欄可以正常更新。( UPDATE命令沒有 OVERRIDING子句。)
sequence_options 子句可用來覆寫序列的參數。可用的選項包括針對 顯示的選項CREATE SEQUENCE,加上 SEQUENCE NAME 。如果沒有 nameSEQUENCE NAME,系統會為序列選擇未使用的名稱。
儲存模式
選用的 STORAGE 子句會設定資料欄的儲存模式。使用這些選項來控制可變長度資料類型的壓縮行為,例如 JSON。
Amazon Aurora DSQL 會在超過特定大小時壓縮某些資料類型。若要停用此行為,請使用 PLAIN或 EXTERNAL選項。
PLAIN-
Aurora DSQL 會在不壓縮的情況下內嵌存放資料。這是固定長度資料類型的唯一選項,例如
integer。使用此選項可停用某些可變長度類型的壓縮。 MAIN|EXTENDED|DEFAULT-
MAIN如果基礎資料類型支援壓縮, 和EXTENDED允許選擇性壓縮資料欄。DEFAULT會將儲存模式設定為資料欄資料類型的預設模式。 EXTERNAL-
Aurora DSQL 目前不支援 TOAST 資料表,但會
EXTERNAL停用支援壓縮的資料類型壓縮。