ALTER TABLE
目录
ALTER TABLE
NAMESYNOPSIS
DESCRIPTION æè¿°
PARAMETERS åæ°
NOTES 注æ
EXAMPLES ä¾å
COMPATIBILITY å¼å®¹æ§
è¯è
è·
NAME
ALTER TABLE - ä¿®æ¹è¡¨çå®ä¹
SYNOPSIS
ALTER TABLE [
ONLY ] name [ * ]
ADD [ COLUMN ] column type [ column_constraint
[ ... ] ]
ALTER TABLE [ ONLY ] name [ * ]
DROP [ COLUMN ] column [ RESTRICT | CASCADE ]
ALTER TABLE [ ONLY ] name [ * ]
ALTER [ COLUMN ] column { SET DEFAULT
expression | DROP DEFAULT }
ALTER TABLE [ ONLY ] name [ * ]
ALTER [ COLUMN ] column { SET | DROP } NOT NULL
ALTER TABLE [ ONLY ] name [ * ]
ALTER [ COLUMN ] column SET STATISTICS integer
ALTER TABLE [ ONLY ] name [ * ]
ALTER [ COLUMN ] column SET STORAGE { PLAIN |
EXTERNAL | EXTENDED | MAIN }
ALTER TABLE [ ONLY ] name [ * ]
SET WITHOUT OIDS
ALTER TABLE [ ONLY ] name [ * ]
RENAME [ COLUMN ] column TO new_column
ALTER TABLE name
RENAME TO new_name
ALTER TABLE [ ONLY ] name [ * ]
ADD table_constraint
ALTER TABLE [ ONLY ] name [ * ]
DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE
]
ALTER TABLE name
OWNER TO new_owner
ALTER TABLE name
CLUSTER ON index_name
DESCRIPTION æè¿°
ALTER
TABLE
åæ´ä¸ä¸ªç°å表çå®ä¹ã宿好å ç§åå½¢å¼ï¼
ADD COLUMN
è¿ç§å½¢å¼ç¨å CREATE TABLE [create_table(7)] é䏿 ·çè¯æ³å表ä¸- å¢å ä¸ä¸ªæ°çåæ®µã
DROP COLUMN
è¿ç§å½¢å¼ä»è¡¨ä¸å é¤ä¸ä¸ªå段ã请注æï¼åè¿ä¸ªå- 段ç¸å³çç´¢å¼å表约æä¹ä¼è¢«èªå¨å é¤ã 妿任ä½è¡¨ä¹å¤ç对象ä¾èµäºè¿ä¸ªåæ®µï¼ ä½ å¿é¡»è¯´ CASCADEï¼æ¯å¦ï¼å¤é®åèï¼è§å¾ççã
SET/DROP DEFAULT
è¿ç§å½¢å¼ä¸ºä¸ä¸ªå- 段设置æèå é¤ç¼ºçå¼ã请注æç¼ºçå¼åªåºç¨äºéåç INSERT å½ä»¤ï¼ å®ä»¬ä¸ä¼å¯¼è´å·²ç»å¨è¡¨ä¸- çè¡çæ°å¼çä¿®æ¹ãæä»¬ä¹å¯ä»¥ä¸ºè§å¾å建缺çï¼ è¿ä¸ªæ¶åå®ä»¬æ¯å¨è§å¾ç ON INSERT è§ååºç¨ä¹åæå¥ INSERT è¯å¥ä¸å»çã
SET/DROP NOT NULL
è¿äºå½¢å¼ä¿®æ¹ä¸ä¸ªå段æ¯å¦æ 记为å许 NULL å¼æèæ¯æç» NULL å¼ã å¦æè¡¨å¨å段ä¸åå«é空å¼ï¼é£ä¹ä½ åªå¯ä»¥ SET NOT NULLã
SET STATISTICS
This form
è¿ä¸ªå½¢å¼ä¸ºéåç
ANALYZE [analyze(7)]
æä½è®¾ç½®æ¯å-
段çç»è®¡æ¶éç®æ ã
ç®æ çèå´å¯ä»¥å¨
0 å° 1000
ä¹å设置ï¼å¦å¤ï¼æä»è®¾ç½®ä¸º
-1
åè¡¨ç¤ºéæ°æ¢å¤å°ä½¿ç¨ç³»ç»ç¼ºççç»è®¡ç®æ ã
SET STORAGE
è¿ç§å½¢å¼ä¸ºä¸ä¸ªå段设置å卿¨¡å¼ãè¿ä¸ªè®¾ç½®æ§å¶è¿ä¸ªå- 段æ¯åèä¿åè¿æ¯ä¿åå¨ä¸ä¸ªéå±ç表éï¼ä»¥åæ°æ®æ¯å¦è¦å缩ã PLAIN å¿éç¨äºå®é¿çæ°å¼ï¼æ¯å¦ integerï¼å¹¶ä¸æ¯åèçï¼ä¸å缩çã MAIN ç¨äºåèï¼å¯åç¼©çæ°æ®ã EXTERNAL ç¨äºå¤é¨ä¿åï¼ä¸åç¼©çæ°æ®ï¼ è EXTENDED ç¨äºå¤é¨çåç¼©æ°æ®ã EXTENDED æ¯æææ¯æå®çæ°æ®ç缺çã ä½¿ç¨ EXTERNAL å°ä»¤å¨ text åæ®µä¸çåå串æä½æ´å¿«ï¼ ä»åºç代价æ¯å¢å äºåå¨ç©ºé´ã
SET WITHOUT OIDS
ä»è¡¨ä¸å é¤ oid åæ®µãä»è¡¨ä¸å é¤ï¼è®¾ç½®ä¸ºæ²¡æï¼oid åæ ·ä¸ä¼ç«å³åçã OID 使ç¨ç空é´å°å¨åç»è¢«æ´æ°çæ¶ååæ¶ã䏿´æ°åç»çæ¶åï¼ OID ç空é´åæ°å¼çç»´æ¤é½æ¯ä¸ç¡®å®çãè¿ä¸ªè¿ç¨è¯ä¹ä¸ç±»ä¼¼ DROP COLUMN è¿ç¨ã
|
RENAME |
RENAME 形弿¹åä¸ä¸ªè¡¨çåå- ï¼æèæ¯ä¸ä¸ªç´¢å¼ï¼ä¸ä¸ªåºåï¼æèä¸ä¸ªè§å¾ï¼æèæ¯è¡¨ä¸ä¸ä¸ªç¬ç«å- 段çååã å®å¯¹åå¨çæ°æ®æ²¡æä»»ä½å½±åã |
ADD table_constraint
è¿ä¸ªå½¢å¼ç»è¡¨å¢å ä¸ä¸ªæ°ç约æï¼ç¨çè¯æ³å CREATE TABLE [create_table(7)] 䏿 ·ã
DROP CONSTRAINT
è¿ä¸ªå½¢å¼å é¤ä¸ä¸ªè¡¨ä¸ç约æã ç®åï¼å¨è¡¨ä¸ç约æä¸è¦æ±æå¯ä¸çåå- ï¼å æ¤å¯è½æå¤ä¸ªçº¦æå¹é声æçååã ææè¿æ ·ç约æé½å°è¢«å é¤ã
|
OWNER |
è¿ä¸ªå½¢å¼æ¹å表ï¼ç´¢å¼ï¼åºåæèè§å¾çææè为æå®ææèã
CLUSTER
è¿ç§å½¢å¼ä¸ºå°æ¥å¯¹è¡¨è¿è¡ç CLUSTER [cluster(7)] æä½åæ è®°ã
è¦ä½¿ç¨ ALTER TABLEï¼ä½ å¿éæ¥æè¯¥è¡¨ï¼ é¤äº ALTER TABLE OWNER ä¹å¤ï¼å®åªè½ç±è¶çº§ç¨æ·æ§è¡ã
PARAMETERS åæ°
|
name |
è¯å¾æ´æ¹çç°å表ï¼å¯è½ææ¨¡å¼ä¿®é¥°ï¼çåç§°ã 妿声æäº ONLYï¼ååªæ´æ¹è¯¥è¡¨ã å¦ææ²¡æå£°æ ONLYï¼å该表åå¶ææå代表ï¼å¦ææï¼é½è¢«æ´æ°ã æä»¬å¯ä»¥å¨è¡¨åå- åé¢éå ä¸ä¸ª * 表示å代表é½è¢«æ«æï¼ä½æ¯å¨ç®åççæ¬éï¼è¿æ¯ç¼ºçè¡ä¸ºã ï¼å¨7.1ä¹åççæ¬ï¼ONLY æ¯ç¼ºççè¡ä¸ºãï¼ç¼ºçå¯ä»¥éè¿æ¹åéç½®é项 SQL_INHERITANCE æ¥æ¹åã
|
column |
ç°åææ°çåæ®µåç§°ã
|
type |
æ°å段çç±»åã
new_column
æ°å段çç±»åã
new_name
è¡¨çæ°åç§°ã
table_constraint
è¡¨çæ°ç约æå®ä¹ã
constraint_name
è¦å é¤çç°æçº¦æçååã
new_owner
è¯¥è¡¨çæ°ææèçç¨æ·åã
index_name
è¦æ 记为建ç°ç表ä¸é¢çç´¢å¼ååã
CASCADE
èªå¨å é¤ä¾èµäºè¢«ä¾èµå段æè约æçå¯¹è±¡ï¼æ¯å¦ï¼å¼ç¨è¯¥å- 段çè§å¾ï¼ã
RESTRICT
妿忮µæè约æè¿æä»»ä½ä¾èµç对象ï¼åæç»å é¤è¯¥å段ã è¿æ¯ç¼ºçè¡ä¸ºã
NOTES 注æ
COLUMN å³é®åæ¯å¤ä½çï¼å¯ä»¥çç¥ã
å¨ç®åç ADD COLUMNå®ç°éè¿ä¸æ¯ææ°å/åæ®µç缺çï¼å¼ï¼å NOT NULL åå¥ã æ°å- 段å¼å§å卿¶ææå¼é½æ¯ NULLã ä¸è¿ä½ å¯ä»¥éåç¨ ALTER TABLE ç SET DEFAULT å½¢å¼è®¾ç½®ç¼ºçï¼å¼ï¼ãï¼ä½ å¯è½è¿æ³ç¨ UPDATE [update(7)] æå·²å- å¨è¡æ´æ°ä¸ºç¼ºçå¼ãï¼ å¦æä½ æ³æ è®°è¯¥åæ®µä¸ºé nullï¼å¨ä½ 为该å- æ®µçææè¡è¾å¥é null å¼ä¹åç¨ SET NOT NULLã
DROP COLUMN å½ä»¤å¹¶ä¸æ¯ç©ç䏿忮µå é¤ï¼ èåªæ¯ç®å尿宿 记为 SQL æä½ä¸ä¸å¯è§çãéå对该表çæå¥åæ´æ°å°å¨è¯¥å段åå¨ä¸ä¸ª NULLã å æ- ¤ï¼å é¤ä¸ä¸ªå- 段æ¯å¾å¿«çï¼ä½æ¯å®ä¸ä¼ç«å³ç¼©åä½ ç表å¨ç£çä¸ç大å°ï¼å 为被å é¤äºçå- æ®µå æ®ç空é´è¿æ²¡æåæ¶ã è¿äºç©ºé´å°éçç°æçè¡çæ´æ°èå¾å°åæ¶ãè¦ç«å³åæ¶ç©ºé´ï¼ æä»¬å¯ä»¥åä¸ä¸ªUPDATEææè¡çåå¨ä½ï¼ç¶åç«å³ vacuumï¼ è±¡è¿æ ·ï¼
UPDATE table SET
col = col;
VACUUM FULL table;
å¦æè¡¨æä»»ä½å代表ï¼é£ä¹å¦æä¸å¨å代表ä¸ååæ ·çä¿®æ¹çè¯ï¼ å°±ä¸å许å¨ç¶è¡¨ä¸å¢å æèéå½åä¸ä¸ªå段ï¼ä¹å°±æ¯è¯´ï¼ ALTER TABLE ONLYå°è¢«æç»ãè¿æ ·å°±ä¿è¯äºåä»£è¡¨æ»æ¯æåç¶è¡¨å¹éçåæ®µã
ä¸ä¸ªéå½DROP COLUMN æä½å°åªæå¨å代表并ä¸ä»ä»»ä½å¶å®ç¶è¡¨ä¸- ç»§æ¿è¯¥å段并ä¸ä»æ¥æ²¡æç¬ç«å®ä¹è¯¥åæ®µçæ¶åæè½å é¤ä¸ä¸ªå代表çåæ®µã ä¸ä¸ªééå½çDROP COLUMNï¼ä¹å°±æ¯ï¼ALTER TABLE ONLY ... DROP COLUMNï¼ä»æ¥ä¸ä¼å é¤ä»»ä½å代忮µï¼ èæ¯æä»ä»¬æ 记为ç¬ç«å®ä¹çï¼è䏿¯ç»§æ¿çã
ä¸åè®¸æ´æ¹ç³»ç»è¡¨ç»æçä»»ä½é¨åã
请åèCREATE TABLE é¨åè·åæ´å¤ææåæ°çæè¿°ã Chapter 5 ‘‘Data Definition’’ éææ´å¤æå³ç»§æ¿çä¿¡æ¯ã
EXAMPLES ä¾å
å表ä¸å¢å ä¸ä¸ª varchar åï¼
ALTER TABLE distributors ADD COLUMN address varchar(30);
ä»è¡¨ä¸å é¤ä¸ä¸ªå段ï¼
ALTER TABLE distributors DROP COLUMN address RESTRICT;
对ç°ååæ¹åï¼
ALTER TABLE distributors RENAME COLUMN address TO city;
æ´æ¹ç°å表çååâ¶
ALTER TABLE distributors RENAME TO suppliers;
ç»ä¸ä¸ªå段å¢å ä¸ä¸ªé空约æï¼
ALTER TABLE distributors ALTER COLUMN street SET NOT NULL;
ä»ä¸ä¸ªå段éå é¤ä¸ä¸ªé空约æï¼
ALTER TABLE distributors ALTER COLUMN street DROP NOT NULL;
ç»ä¸ä¸ªè¡¨å¢å ä¸ä¸ªæ£æ¥çº¦æï¼
ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5);
å é¤ä¸ä¸ªè¡¨åå®çææå表ççæ¥çº¦æï¼
ALTER TABLE distributors DROP CONSTRAINT zipchk;
å表ä¸å¢å ä¸ä¸ªå¤é®çº¦æï¼
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses (address) MATCH FULL;
ç»è¡¨å¢å ä¸ä¸ªï¼å¤å段ï¼å¯ä¸çº¦æï¼
ALTER TABLE distributors ADD CONSTRAINT dist_id_zipcode_key UNIQUE (dist_id, zipcode);
ç»ä¸ä¸ªè¡¨å¢åä¸ä¸ªèªå¨å½åç主é®çº¦æï¼è¦æ³¨æçæ¯ä¸ä¸ªè¡¨åªè½æä¸ä¸ªä¸»é®ï¼
ALTER TABLE distributors ADD PRIMARY KEY (dist_id);
COMPATIBILITY å¼å®¹æ§
ADD COLUMN 形弿¯å¼å®¹ SQL æ åçï¼ é¤äºä¸é¢è¯´ç缺çï¼å¼ï¼å NOT NULL 约æå¤ã ALTER COLUMN 形弿¯å®å¨å¼å®¹çã
éå½å表ï¼å/åæ®µï¼ç´¢å¼ï¼ååºåçå忝 PostgreSQL 对 SQL çæ©å±ã
ALTER TABLE DROP COLUMN å¯ä»¥ç¨äºå é¤è¡¨ä¸çå¯ä¸çä¸ä¸ªåæ®µï¼ çä¸ä¸ä¸ªé¶å段ç表ãè¿æ¯å¯¹ SQL çæ©å±ï¼å®ä¸å许é¶å段表ã
è¯è
Postgresql 䏿ç½ç« ä½ä¼å¹³ <laser@pgsqldb.org>
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh