CREATE TABLE
目录
CREATE TABLE
NAMESYNOPSIS
DESCRIPTION æè¿°
PARAMETERS åæ°
NOTES 注æ
EXAMPLES ä¾å
COMPATIBILITY å¼å®¹æ§
TEMPORARY TABLES 临æ¶è¡¨
COLUMN CHECK CONSTRAINTS åæ®µæ£æ¥çº¦æ
NULL ‘‘CONSTRAINT’’ NULL约æ
INHERITANCE ç»§æ¿
OBJECT IDS 对象ID
ZERO-COLUMN TABLES é¶è¡è¡¨
SEE ALSO åè§
è¯è
è·
NAME
CREATE TABLE - å®ä¹ä¸ä¸ªæ°è¡¨
SYNOPSIS
CREATE [ [
GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE
table_name (
{ column_name data_type [ DEFAULT default_expr
] [ column_constraint [, ... ] ]
| table_constraint
| LIKE parent_table [ { INCLUDING | EXCLUDING }
DEFAULTS ] } [, ... ]
)
[ INHERITS ( parent_table [, ... ] ) ]
[ WITH OIDS | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
where column_constraint is:
[ CONSTRAINT
constraint_name ]
{ NOT NULL | NULL | UNIQUE | PRIMARY KEY |
CHECK (expression) |
REFERENCES reftable [ ( refcolumn ) ] [ MATCH
FULL | MATCH PARTIAL | MATCH SIMPLE ]
[ ON DELETE action ] [ ON UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED |
INITIALLY IMMEDIATE ]
and table_constraint is:
[ CONSTRAINT
constraint_name ]
{ UNIQUE ( column_name [, ... ] ) |
PRIMARY KEY ( column_name [, ... ] ) |
CHECK ( expression ) |
FOREIGN KEY ( column_name [, ... ] ) REFERENCES
reftable [ ( refcolumn [, ... ] ) ]
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE
action ] [ ON UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED |
INITIALLY IMMEDIATE ]
DESCRIPTION æè¿°
CREATE TABLE å°å¨å½åæ°æ®åºå建ä¸ä¸ªæ°çï¼ åå§ä¸ºç©ºç表ã该表å°ç±ååºæ- ¤å½ä»¤çç¨æ·ææã
妿ç»åºäºæ¨¡å¼åï¼æ¯å¦ï¼CREATE TABLE myschema.mytable ...ï¼ï¼ é£ä¹è¡¨æ¯å¨æå®æ¨¡å¼ä¸å建çãå¦åå®å¨å½å模å¼ä¸å建ã临æ¶è¡¨å- å¨äºä¸ä¸ªç¹æ®ç模å¼éï¼ å æ¤å建临æ¶è¡¨çæ¶åä¸è½ç»åºæ¨¡å¼åã表åå- å¿éåå䏿¨¡å¼ä¸å¶ä»è¡¨ï¼åºåï¼ç´¢å¼æèè§å¾ç¸åºå«ã
CREATE TABLE è¿èªå¨å建ä¸ä¸ªæ°æ®ç±»åï¼ è¯¥æ°æ®ç±»å代表对åºè¯¥è¡¨ä¸è¡çå¤åç±»åã å æ¤ï¼è¡¨ä¸è½å忍¡å¼ä¸- çç°ææ°æ®ç±»åååã
ä¸ä¸ªè¡¨çåæ®µæ°ä¸è½è¶è¿ 1600ãï¼å®éä¸ï¼çæ- £çéå¶æ¯è¿ä½ï¼å ä¸ºè¿æåç»é¿åº¦ç约æï¼ã
å¯éç约æå- å¥å£°æçº¦æï¼æèæµè¯ï¼ï¼æ°è¡æèæ´æ°çè¡å¿é¡»æ»¡è¶³è¿äºçº¦ææè½æåæå¥ææ´æ°ã çº¦ææ¯ä¸ä¸ªå®æ¯ä¸ä¸ª SQL 对象ï¼å®ä»¥å¤ç§æ¹å¼å婿们å婿们å¨è¡¨ä¸å®ä¹ææçæ°å¼éåã
å®ä¹çº¦æåä¸¤ç§æ¹æ³ï¼è¡¨çº¦æåå约æãä¸ä¸ªåçº¦ææ¯ä½ä¸ºä¸ä¸ªåå®ä¹çä¸é¨åå®ä¹çã è表约æå¹¶ä¸åæä¸ªåç»å¨ä¸èµ·ï¼ å®å¯ä»¥ä½ç¨äºå¤äºä¸ä¸ªåä¸ãæ¯ä¸ªå约æä¹å¯ä»¥åæè¡¨çº¦æï¼ 妿æä¸ªçº¦æåªå½±åä¸ä¸ªåï¼é£ä¹å约æåªæ¯ç¬¦å·ä¸çç®æ´æ¹å¼èå·²ã
PARAMETERS åæ°
TEMPORARY æ TEMP
妿声æäºæ- ¤åæ°ï¼å该表å建为临æ¶è¡¨ã临æ¶è¡¨å¨ä¼è¯ç»ææ¶èªå¨å é¤ï¼ æèæ¯ï¼å¯éï¼å¨å½åäºå¡çç»å°¾ï¼åéä¸é¢ç ON COMMITï¼ã ç°æååæ°¸ä¹è¡¨å¨ä¸´æ¶è¡¨å卿é´å¨æ¬ä¼è¯è¿ç¨ä¸æ¯ä¸å¯è§çï¼ é¤éå®ä»¬æ¯ç¨æ¨¡å¼ä¿®é¥°çååå¼ç¨çã ä»»ä½å¨ä¸´æ¶è¡¨ä¸å建çç´¢å¼ä¹é½ä¼èªå¨å é¤ã
æä»¬å¯ä»¥éæ©å¨ TEMPORARY æ TEMP å颿¾ä¸ GLOBAL æè LOCALã è¿æ ·å¯¹ PostgreSQL 没æä»»ä½åºå«ï¼å¯ä»¥åé Compatibility [create_table(7)]ã
table_name
è¦å建ç表çååï¼å¯ä»¥ç¨æ¨¡å¼ä¿®é¥°ï¼ã
column_name
卿°è¡¨ä¸è¦å建çåæ®µååã
data_type
è¯¥åæ®µçæ°æ®ç±»åãå®å¯ä»¥åæ¬æ°ç»è¯´æç¬¦ã
DEFAULT
DEFAULT åå¥ç»å®æåºç°çåæ®µä¸ä¸ªç¼ºçæ°å¼ã 该æ°å¼å¯ä»¥æ¯ä»»ä½ä¸å«åéç表达å¼ï¼ä¸å许使ç¨å- æ¥è¯¢å对æ¬è¡¨ä¸çå¶å®å段ç交åå¼ç¨ï¼ã 缺ç表达å¼çæ°æ®ç±»åå¿é¡»ååæ®µç±»åå¹éã
缺ç表达å¼å°è¢«ç¨äºä»»ä½æªå£°æè¯¥å段æ°å¼çæå¥æä½ã 妿å- æ®µä¸æ²¡æç¼ºçå¼ï¼é£ä¹ç¼ºçæ¯ NULLã
LIKE
åå¥å£°æä¸ä¸ªè¡¨ï¼æ°è¡¨èªå¨ä»è¿ä¸ªè¡¨éé¢ç»§æ¿ææå段åï¼
ä»ä»¬çæ°æ®ç±»åï¼ä»¥åé空约æã
å INHERITS ä¸åï¼æ°è¡¨ä¸ç»§æ¿è¿æ¥ç表ä¹é´å¨å建å¨ä½å®æ¯ä¹åæ¯å®å¨æ å³çã æå¥æ°è¡¨çæ°æ®ä¸ä¼å¨ç¶è¡¨ä¸è¡¨ç°åºæ¥ã
åæ®µç¼ºç表达å¼åªæå¨å£°æäº INCLUDING DEFAULTS ä¹åæä¼ç»§æ¿è¿æ¥ã ç¼ºçæ¯æé¤ç¼ºç表达å¼ã
INHERITS ( parent_table [, ... ] )
å¯éç INHERITS åå¥å£°æä¸å表ï¼è¿ä¸ªæ°è¡¨èªå¨ä»è¿å表ä¸ç»§æ¿ææå- 段ã 妿å¨å¤äºä¸ä¸ªç¶è¡¨ä¸åå¨ååçå- 段ï¼é£ä¹å°±ä¼æ¥åä¸ä¸ªé误ï¼é¤éè¿äºå- æ®µçæ°æ®ç±»å卿¯ä¸ªç¶è¡¨é齿¯å¹éçã å¦ææ²¡æå²çªï¼é£ä¹éå¤çå- æ®µå¨æ°è¡¨ä¸èåæä¸ä¸ªå段ã 妿æ°è¡¨çåæ®µåå表ä¸åæ¬åç»§æ¿çå- 段ååçï¼é£ä¹å®çæ°æ®ç±»åä¹å¿é¡»åä¸é¢ä¸æ ·ä¸ç»§æ¿å- 段å¹éï¼å¹¶ä¸è¿äºå段å®ä¹ä¼èåæä¸ä¸ªã ä¸è¿ï¼ååçç»§æ¿åæ°å- 段声æå¯ä»¥å£°æä¸åç约æï¼ææçç»§æ¿è¿æ¥ç约æä»¥å声æç约æé½èåå°ä¸èµ·ï¼å¹¶ä¸å¨é¨åºç¨äºæ°è¡¨ã 妿æ°è¡¨ä¸ºè¯¥å段æç¡®ç声æäºä¸ä¸ªç¼ºçæ°å¼ï¼é£ä¹æ- ¤ç¼ºçæ°å¼è¦ç任使¥èªç»§æ¿å段声æç缺çå¼ã å¦åï¼ä»»ä½ä¸ºè¯¥å- 段声æäºç¼ºçæ°å¼çç¶è¡¨é½å¿é¡»å£°æç¸åç缺çï¼å¦å就伿¥åä¸ä¸ªé误ã
WITH OIDS
WITHOUT OIDS
è¿ä¸ªå¯éçåå¥å£°ææ°è¡¨ä¸çè¡æ¯å¦åºè¯¥æ¥æèµäºå®ä»¬ç OID ï¼å¯¹è±¡æ è¯ï¼ã ç¼ºçæ¯æ OIDãï¼å¦ææ°è¡¨ä»ä»»ä½æ OID ç表继æ¿èæ¥ï¼é£ä¹å°±ç®è¿æ¡å½ä»¤è¯´äº WITHOUT OIDSï¼ ä¹ä¼å¼ºå¶ WITH OIDSãï¼
声æ WITHOUT OIDS åè®¸ç¨æ·ç¦æ¢ä¸ºè¡æèè¡¨çæ OIDã è¿ä¹å对大表æ¯å¼å¾çï¼å ä¸ºè¿æ ·å¯ä»¥åå° OID æ¶è并䏿¨è¿ 32 ä½ OID 计æ°å¨çæ¶èã 䏿¦è¯¥è®¡æ°å¨éå ï¼é£ä¹å°±ä¸è½åå设 OID çå¯ä¸ï¼è¿æ ·å®çå®ç¨æ§å°±å¤§æææ£ã 声æ WITHOUT OIDS è¿ä¼åå°å¨ç£çä¸å卿¯è¡ç空é´ï¼æ¯è¡åå° 4 åèï¼å æ¤ä¹å¯ä»¥æ¹è¿æ§è½ã
CONSTRAINT constraint_name
åæè¡¨çº¦æçå¯éååãå¦ææ²¡æå£°æï¼åç±ç³»ç»çæä¸ä¸ªååã
NOT NULL
åæ®µä¸å许åå« NULL æ°å¼ã
|
NULL |
è¯¥åæ®µå许åå« NULL æ°å¼ãè¿æ¯ç¼ºçã
è¿ä¸ªåå¥çåå¨åªæ¯ä¸ºåé£äºéæ å SQL æ°æ®åºå¼å®¹ã æä»¬ä¸å»ºè®®å¨æ°åºç¨ä¸ä½¿ç¨å®ã
UNIQUE (column constraint)
UNIQUE ( column_name [, ... ] ) (table
constraint)
UNIQUE 声æä¸ä¸ªè§åï¼è¡¨ç¤ºä¸ä¸ªè¡¨éçä¸ä¸ªæèå¤ä¸ªç¬ç«çå- 段ç»åçåç»åªè½åå«å¯ä¸çæ°å¼ã 表çå¯ä¸çº¦æçè¡ä¸ºåå约æç䏿 ·ï¼åªä¸è¿å¤äºè·¨å¤è¡çè½åã
对äºå¯ä¸çº¦æçç¨éèè¨ï¼ç³»ç»è®¤ä¸º NULL æ°å¼æ¯ä¸ç¸ççã
æ¯ä¸ªå¯ä¸è¡¨çº¦æé½å¿é¡»å½åä¸ä¸ªå- 段çéåï¼è¯¥éåå¿é¡»åå¶å®å¯ä¸çº¦æå½åå- 段éåæè该表å®ä¹ç主é®çº¦æä¸åã ï¼å¦åå°±åªæ¯åæ ·ç约æåäºä¸¤æ¬¡ãï¼
PRIMARY KEY (column
constraint)
PRIMARY KEY ( column_name [, ... ] ) (table
constraint)
主é®çº¦æè¡¨æè¡¨ä¸çä¸ä¸ªæèä¸äºå段åªè½åå«å¯ä¸ï¼ä¸éå¤ï¼é NULL çæ°å¼ã 仿æ¯ä¸è®²ï¼PRIMARY KEY åªæ¯ UNIQUE å NOT NULL çç»åï¼ä¸è¿æä¸å¥å段æ è¯ä¸ºä¸»é®åæ¶ä¹ä½ç°äºæ¨¡å¼è®¾è®¡çåæ°æ®ï¼ å ä¸ºä¸»é®æå³çå¶å®è¡¨å¯ä»¥æ¿è¿å¥å段ç¨åè¡çå¯ä¸æ è¯ã
ä¸ä¸ªè¡¨åªè½å£°æä¸ä¸ªä¸»é®ï¼ä¸ç®¡æ¯ä½ä¸ºå段约æè¿æ¯è¡¨çº¦æã
主é®çº¦æåºè¯¥å®ä¹å¨å个表ä¸çä¸ä¸ªä¸å¶å®å¯ä¸çº¦ææå®ä¹çä¸åçå- 段éåä¸ã
CHECK (expression)
CHECK 约æå£°æä¸ä¸ªçæå¸å°ç»æçåå¥ï¼ 䏿¬¡æå¥æèæ´æ°æä½è¥æ³æååéé¢çæ°è¡æèè¢«æ´æ°çè¡å¿é¡»æ»¡è¶³è¿ä¸ªæ¡ä»¶ã 声æä¸ºå段约æçæ£æ¥çº¦æåºè¯¥åªå¼ç¨è¯¥å- æ®µçæ°å¼ï¼èå¨è¡¨çº¦æéåºç°ç表达å¼å¯ä»¥å¼ç¨å¤ä¸ªå段ã
ç®åï¼CHECK 表达å¼ä¸è½åå«åæ¥è¯¢ä¹ä¸è½å¼ç¨é¤å½åè¡å段ä¹å¤çåéã
REFERENCES
reftable [ ( refcolumn ) ] [
MATCH matchtype ] [ ON DELETE
action ] [ ON UPDATE action ] (column
constraint)
FOREIGN KEY ( column [, ... ] )
è¿äºåå¥å£°æä¸ä¸ªå¤é®çº¦æï¼å¤é®çº¦æå£°æä¸ä¸ªç±æ°è¡¨ä¸- ä¸åæèå¤åç»æçç»åºè¯¥åªåå«å¹éå¼ç¨ç表 reftable ä¸å¯¹åºå¼ç¨çåæ®µ refcolumn ä¸çæ°å¼ã 妿çç¥ refcolumnï¼ åä½¿ç¨ reftable ç主é®ã 被å¼ç¨å段å¿é¡»æ¯è¢«å¼ç¨è¡¨ä¸çå¯ä¸å段æè主é®ã
åè¿äºå段æå¥çæ°å¼å°ä½¿ç¨ç»åºçå¹éç±»åä¸åè表ä¸çåèåä¸- çæ°å¼è¿è¡å¹éã æä¸ç§å¹éç±»åï¼MATCH FULLï¼ MATCH PARTIALï¼å MATCH SIMPLEï¼å®ä¹æ¯ç¼ºçå¹éç±»åã MATCH FULL å°ä¸å许ä¸ä¸ªå¤å段å¤é®çå- 段为 NULLï¼é¤éææå¤é®å段é½ä¸º NULLã MATCH SIMPLE å许æäºå¤é®å- 段为 NULL èå¤é®çå¶å®é¨å䏿¯ NULLãMATCH PARTIAL è¿æ²¡å®ç°ã
å¦å¤ï¼å½è¢«åèåæ®µä¸çæ°æ®æ¹åçæ¶åï¼é£ä¹å°å¯¹æ¬è¡¨çåæ®µä¸-
çæ°æ®æ§è¡æç§æä½ã
ON DELETE
åå¥å£°æå½è¢«åè表ä¸-
ç被åèè¡å°è¢«å é¤çæ¶åè¦æ§è¡çæä½ã
类似ï¼ON
UPDATE å-
å¥å£°æè¢«åè表ä¸è¢«åèåæ®µæ´æ°ä¸ºæ°å¼çæ¶åè¦æ§è¡çå¨ä½ã
å¦æè¯¥è¡è¢«æ´æ°ï¼ä½è¢«åèçåæ®µå®é䏿²¡æååï¼é£ä¹å°±ä¸ä¼æä»»ä½å¨ä½ã
ä¸é¢æ¯æ¯ä¸ªåå¥çå¯è½çå¨ä½ï¼
NO ACTION
çæä¸ä¸ªé误ï¼è¡¨æå é¤æèæ´æ°å°äº§çä¸ä¸ªè¿åå¤é®çº¦æçå¨ä½ã 宿¯ç¼ºçå¨ä½ã
RESTRICT
å NO ACTION 䏿 ·ï¼åªæ¯å¨ä½ä¸å¯æ¨è¿ï¼ å³ä½¿çº¦æå©ä¸çé¨åæ¯å¯ä»¥æ¨è¿çä¹é©¬ä¸åçã
CASCADE
å é¤ä»»ä½å¼ç¨äºè¢«å é¤è¡çè¡ï¼æèå嫿å¼ç¨è¡çå- æ®µå¼æ´æ°ä¸ºè¢«åèåæ®µçæ°æ°å¼ã
SET NULL
æå¼ç¨è¡æ°å¼è®¾ç½®ä¸º NULLã
SET DEFAULT
æå¼ç¨åçæ°å¼è®¾ç½®ä¸ºå®ä»¬ç缺çå¼ã
妿䏻é®å段ç»å¸¸æ´æ°ï¼é£ä¹æä»¬ç»
REFERENCES å-
段å¢å ä¸ä¸ªç´¢å¼å¯è½æ¯åéçï¼è¿æ ·ä¸
REFERENCES
åæ®µç¸å³èç
NO ACTION å CASCADE
å¨ä½å¯ä»¥æ´ææå°æ§è¡ã
DEFERRABLE
NOT DEFERRABLE
è¿ä¸¤ä¸ªå³é®å- è®¾ç½®è¯¥çº¦ææ¯å¦å¯æ¨è¿ãä¸ä¸ªä¸å¯æ¨è¿ç约æå°å¨æ¯æ¡å½ä»¤ä¹å马䏿£æ¥ã å¯ä»¥æ¨è¿ççº¦ææ£æ¥å¯ä»¥æ¨è¿å°äºå¡ç»å°¾ï¼ä½¿ç¨ SET CONSTRAINTS [set_constraints(7)] å½ä»¤ï¼ã ç¼ºçæ¯ NOT DEFERRABLEãç®ååªæå¤é®çº¦ææ¥åè¿ä¸ªå- å¥ãææå¶å®çº¦æç±»å齿¯ä¸å¯æ¨è¿çã
INITIALLY IMMEDIATE
INITIALLY DEFERRED
å¦æçº¦ææ¯å¯æ¨è¿çï¼é£ä¹è¿ä¸ªåå¥å£°ææ£æ¥çº¦æçç¼ºçæ¶é´ã å¦æçº¦ææ¯ INITIALLY IMMEDIATEï¼ é£ä¹æ¯æ¡è¯- å¥ä¹åå°±æ£æ¥å®ãè¿ä¸ªæ¯ç¼ºçãå¦æçº¦ææ¯ INITIALLY DEFERREDï¼é£ä¹åªæå¨äºå¡ç»å°¾ææ£æ¥å®ã çº¦ææ£æ¥çæ¶é´å¯ä»¥ç¨ SET CONSTRAINTS [set_constraints(7)] å½ä»¤ä¿®æ¹ã
ON COMMIT
æä»¬å¯ä»¥ç¨
ON COMMIT
æ§å¶ä¸´æ¶è¡¨å¨äºå¡åç»å°¾çè¡ä¸ºãè¿ä¸ä¸ªé项æ¯ï¼
PRESERVE ROWS
å¨äºå¡ç»å°¾ä¸åçä»»ä½ç¹å®çå¨ä½ãè¿æ¯ç¼ºçè¡ä¸ºã
DELETE ROWS
临æ¶è¡¨çææè¡å¨æ¯æ¬¡äºå¡ç»å°¾é½è¢«åé¤ãå®éä¸ï¼å¨æ¯æ¬¡æäº¤çæ¶åé½èªå¨ truncate(7) ã
|
DROP |
å¨å½åäºå¡åçç»å°¾ï¼ä¸´æ¶è¡¨å°è¢«å é¤ã
NOTES 注æ
|
• |
妿ä¸ä¸ªåºç¨ä½¿ç¨äº OID æ è¯è¡¨ä¸çç¹å®è¡ï¼é£ä¹æä»¬å»ºè®®å¨è¯¥è¡¨ç oid åæ®µä¸å建ä¸ä¸ªå¯ä¸çº¦æï¼ä»¥ç¡®ä¿è¯¥è¡¨ç OID å³ä½¿å¨è®¡æ°å¨éå ä¹å乿¯å¯ä¸çãå¦æä½ éè¦ä¸ä¸ªæ´ä¸ªæ°æ®åºèå´çå¯ä¸æ è¯ï¼ é£ä¹å°±è¦é¿åå设 OID æ¯è·¨è¡¨å¯ä¸çï¼ä½ å¯ä»¥ç¨ tableoid åè¡ OID çç»åæ¥å®ç°è¿ä¸ªç®çã ï¼å°æ¥ç PostgreSQL å¾å¯è½ä¸ºæ¯ä¸ªè¡¨ä½¿ç¨ç¬ç«ç OID 计æ°å¨ï¼ å æ¤åæ¬ tableoid ç»ææ°æ®åºèå´åçå¯ä¸æ è¯å°æ¯å¿é¡»çï¼è䏿¯å¯éçãï¼
æç¤º: 对é£äºæ²¡æä¸»é®çè¡¨ï¼æä»¬ä¸å»ºè®®ä½¿ç¨ WITHOUT OIDSï¼ å ä¸ºå¦ææ¢æ²¡æ OID åæ²¡æå¯ä¸æ°æ®é®åï¼é£ä¹å°±å¾é¾æ è¯ç¹å®çè¡ã
|
• |
PostgreSQL èªå¨ä¸ºæ¯ä¸ªå¯ä¸çº¦æå主é®çº¦æå建ä¸ä¸ªç´¢å¼ä»¥ç¡®ä¿å¯ä¸æ§ã å æ- ¤ï¼æä»¬ä¸å¿ä¸ºä¸»é®å段å建æç¡®çç´¢å¼ãï¼åé CREATE INDEX [create_index(7)]è·åæ´å¤ä¿¡æ¯ãï¼ | ||
|
• |
å¯ä¸çº¦æå主é®å¨ç®åçå®ç°éæ¯ä¸è½ç»§æ¿çã è¿æ ·ï¼å¦ææç»§æ¿åå¯ä¸çº¦æç»åå¨ä¸èµ·ä¼å¯¼è´æ æ³è¿è½¬ã
EXAMPLES ä¾å
å建表 films å distributorsï¼
CREATE TABLE
films (
code char(5) CONSTRAINT firstkey PRIMARY KEY,
title varchar(40) NOT NULL,
did integer NOT NULL,
date_prod date,
kind varchar(10),
len interval hour to minute
);
CREATE TABLE
distributors (
did integer PRIMARY KEY DEFAULT
nextval(’serial’),
name varchar(40) NOT NULL CHECK (name <>
’’)
);
å建ä¸ä¸ªå¸¦æ 2 ç»´æ°ç»ç表ï¼
CREATE TABLE
array (
vector int[][]
);
为表 films å®ä¹ä¸ä¸ªå¯ä¸è¡¨çº¦æã å¯ä¸è¡¨çº¦æå¯ä»¥å¨è¡¨çä¸ä¸ªæå¤ä¸ªå- 段ä¸å®ä¹ï¼
CREATE TABLE
films (
code char(5),
title varchar(40),
did integer,
date_prod date,
kind varchar(10),
len interval hour to minute,
CONSTRAINT production UNIQUE(date_prod)
);
å®ä¹ä¸ä¸ªæ£æ¥å约æï¼
CREATE TABLE
distributors (
did integer CHECK (did > 100),
name varchar(40)
);
å®ä¹ä¸ä¸ªæ£æ¥è¡¨çº¦æï¼
CREATE TABLE
distributors (
did integer,
name varchar(40)
CONSTRAINT con1 CHECK (did > 100 AND name <>
’’)
);
为表 films å®ä¹ä¸ä¸ªä¸»é®è¡¨çº¦æã 主é®è¡¨çº¦æå¯ä»¥å®ä¹å¨è¡¨ä¸çä¸ä¸ªæå¤ä¸ªå段ã
CREATE TABLE
films (
code char(5),
title varchar(40),
did integer,
date_prod date,
kind varchar(10),
len interval hour to minute,
CONSTRAINT code_title PRIMARY KEY(code,title)
);
为表 distributors å®ä¹ä¸ä¸ªä¸»é®çº¦æã ä¸é¢ä¸¤ä¸ªä¾åæ¯ç- æçï¼ç¬¬ä¸ä¸ªä¾å使ç¨äºè¡¨çº¦æè¯æ³ï¼ 第äºä¸ªä½¿ç¨äºå约æè¡¨ç¤ºæ³ã
CREATE TABLE
distributors (
did integer,
name varchar(40),
PRIMARY KEY(did)
);
CREATE TABLE
distributors (
did integer PRIMARY KEY,
name varchar(40)
);
ä¸é¢è¿ä¸ªä¾åç»å段 name èµäºäºä¸ä¸ªææ¬å¸¸é缺çå¼ï¼ å¹¶ä¸å°å段 did ç缺çå¼å®æä¸ºéè¿éæ©åºå对象çä¸ä¸ä¸ªå¼çæã modtime ç缺çå¼å°æ¯è¯¥è¡æå¥çæ¶åçæ¶é´ã
CREATE TABLE
distributors (
name varchar(40) DEFAULT ’Luso Films’,
did integer DEFAULT
nextval(’distributors_serial’),
modtime timestamp DEFAULT current_timestamp
);
å¨è¡¨ distributors ä¸å®ä¹ä¸¤ä¸ª NOT NULL å约æï¼å¶ä¸ä¹ä¸æç¡®ç»åºäºååï¼
CREATE TABLE
distributors (
did integer CONSTRAINT no_null NOT NULL,
name varchar(40) NOT NULL
);
为 name åæ®µå®ä¹ä¸ä¸ªå¯ä¸çº¦æï¼
CREATE TABLE
distributors (
did integer,
name varchar(40) UNIQUE
);
ä¸é¢çåä¸é¢è¿æ ·ä½ä¸ºä¸ä¸ªè¡¨çº¦æå£°ææ¯ä¸æ ·çï¼
CREATE TABLE
distributors (
did integer,
name varchar(40),
UNIQUE(name)
);
COMPATIBILITY å¼å®¹æ§
CREATE TABLE éµå¾ª SQL92 å SQL99 çä¸ä¸ªåéï¼ä¸äºä¾å¤æåµå¨ä¸é¢ååºã
TEMPORARY TABLES 临æ¶è¡¨
尽管 CREATE TEMPORARY TABLE çè¯æ³å SQL æ åçç±»ä¼¼ï¼ ä½æ¯æææ¯ä¸åçã卿 åéï¼ä¸´æ¶è¡¨åªæ¯å®ä¹ä¸æ¬¡å¹¶ä¸èªå¨å- å¨ï¼ä»ç©ºå容å¼å§ï¼äºä»»ä½éè¦å®ä»¬çä¼è¯ä¸ã PostgreSQL è¦æ±æ¯ä¸ªä¼è¯ä¸ºå®ä»¬ä½¿ç¨çæ¯ä¸ªä¸´æ¶è¡¨ååºå®ä»¬èªå·±ç CREATE TEMPORARY TABLE å½ä»¤ã è¿æ ·å°±å许ä¸åçä¼è¯å°ç¸åç临æ¶è¡¨åå- ç¨äºä¸åçç®çï¼èæ åçå®ç°æ¹æ³åæä¸ä¸ªä¸´æ¶è¡¨åå约æä¸ºå·æç¸åçè¡¨ç»æã
æ åå®ä¹ç临æ¶è¡¨çè¡ä¸ºè¢«å¹¿æ³å°å¿½ç¥äºãPostgreSQL å¨è¿æ¹é¢ä¸å°è¡ä¸ºç±»ä¼¼äºè®¸å¤å¶å® SQL æ°æ®åº
æ åä¸å¨å¨å±åå±é¨å°ä¸´æ¶è¡¨ä¹é´çåºå«å¨ PostgreSQL éä¸å- å¨ï¼å 为è¿ç§åºå«åå³äºæ¨¡åçæ¦å¿µï¼è PostgreSQL 没æè¿ä¸ªæ¦å¿µãåºäºå¼å®¹èèï¼PostgreSQL å°æ¥å临æ¶è¡¨å£°æä¸ç GLOBAL å LOCAL å³é®åï¼ ä½æ¯ä»ä»¬æ²¡æä½ç¨ã
临æ¶è¡¨ç ON COMMIT åå¥ä¹ç±»ä¼¼äº SQL æ åï¼ ä½æ¯æäºåºå«ãå¦æå¿½ç¥äº ON COMMIT åå¥ï¼SQL 声æç¼ºççè¡ä¸ºæ¯ ON COMMIT DELETE ROWSã 使¯ PostgreSQL éç缺çè¡ä¸ºæ¯ ON COMMIT PRESERVE ROWSã å¨ SQL éä¸åå¨ ON COMMIT DROPã
COLUMN CHECK CONSTRAINTS åæ®µæ£æ¥çº¦æ
SQL æ å说 CHECK åæ®µçº¦æåªè½å¼ç¨ä»ä»¬æ½ç¨çåæ®µï¼ åªæ CHECK 表约ææè½å¼ç¨å¤ä¸ªå段ãPostgreSQL å¹¶ä¸å¼ºå¶è¿ä¸ªéå¶ï¼å®æå- 段å表约æçä½ç¸åçä¸è¥¿ã
NULL ‘‘CONSTRAINT’’ NULL约æ
NULL "约æ"ï¼å®éä¸ä¸æ¯çº¦æï¼æ¯ PostgreSQL 对 SQL æ åçæ©å±ï¼ 忬宿¯ä¸ºäºåå¶å®ä¸äºæ°æ®åºç³»ç»å¼å®¹ï¼ä»¥å为äºå NOT NULL 约æå¯¹ç§°ï¼ãå ä¸ºå®æ¯ä»»ä½å段ç缺çï¼æä»¥å®çåºç°åªæ¯åªé³èå·²ã
INHERITANCE ç»§æ¿
éè¿ INHERITS åå¥çå¤éç»§æ¿æ¯ PostgreSQL è¯è¨çæ©å±ã SQL99ï¼ä½ä¸åæ¬ SQL92ï¼ä½¿ç¨ä¸åçè¯æ³åè¯ä¹å®ä¹äºåç»§æ¿ã SQL99 飿 ¼çç»§æ¿è¿æ²¡æå¨ PostgreSQL ä¸å®ç°ã
OBJECT IDS 对象ID
PostgreSQL ç OID çæ¦å¿µä¸æ åã
ZERO-COLUMN TABLES é¶è¡è¡¨
PostgreSQL å许å建没æå段ç表 ï¼æ¯å¦ï¼CREATE TABLE foo();ï¼ãè¿æ¯å¯¹ SQL æ åçæ©å±ï¼ æ åä¸å许åå¨é¶å段表ãé¶å段表æ¬èº«æ²¡ä»ä¹ç¨ï¼ä½æ¯ç¦æ- ¢ä»ä»¬ä¼ç» ALTER TABLE DROP COLUMN带æ¥å¾å¥æªçæåµï¼æä»¥ï¼è¿ä¸ªæ¶åå¿½è§æ åçéå¶å¥½æ³å¾æ¸æ¥ã
SEE ALSO åè§
ALTER TABLE [alter_table(7)], DROP TABLE [drop_table(l)]
è¯è
Postgresql 䏿ç½ç« ä½ä¼å¹³ <laser@pgsqldb.org>
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh