ALTER TABLE

中文man手册

ALTER TABLE

NAME
SYNOPSIS
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