麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-19. SQL命令-ALTER TABLE

2019-09-08 23:33:05
字體:
來源:轉載
供稿:網友
ALTER TABLE
名稱
ALTER TABLE ― 更改表屬性
語法
ALTER TABLE table [ * ]
    ADD [ COLUMN ] column type
ALTER TABLE table [ * ]
    ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }
ALTER TABLE table [ * ]
    RENAME [ COLUMN ] column TO newcolumn
ALTER TABLE table
    RENAME TO newtable
ALTER TABLE table
    ADD table constraint definition
Inputs
table 
試圖更改的現存表的名稱. 
column 
現存或新的列名稱. 
type 
新列的類型. 
newcolumn 
現存列的新名稱. 
newtable 
表的新名稱. 
table constraint definition 
表的新的約束定義. 

New table constraint for the table

輸出
ALTER 
從被更名的列或表返回的信息. 
ERROR 
如果一個列或表不存在返回的信息.
描述
ALTER TABLE 變更一個現存表的定義.ADD COLUMN 形式用與 CREATE TABLE一樣的語法向表中增加一個新列/字段。ALTER COLUMN 形式允許你從列/字段中設置或者刪除缺?。ㄖ担?。注意缺?。ㄖ担┲粚π虏迦氲男杏行?。RENAME 子句可以在不影響相關表中任何數據的情況下更改一個表或者列/字段的名稱。因此,表或列/字段在此命令執行后仍將是相同尺寸和類型。ADD table constraint definition 子句用與 CREATE TABLE一樣的語法向表中增加一個新的約束?!?
  
如果要改變表的屬性,你必須是表的所有者. 

注意
COLUMN 關鍵字是多余的,可以省略. 
如果"*"跟在一個表名后面,表示該命令要對該表和所有繼承級別低于該表的表進行操作;缺省時,該屬性(更改)不會增加到任何子表或修改任何子表的相關名稱。當增加或修改一個上級表(譯注:繼承級別高的表)的屬性時總是應該這樣的。否則,象下面這樣的在繼承級上進行的查詢 

SELECT NewColumn FROM SuperClass*
將不能工作,因為子表會比上級表少一個屬性。 
在目前的實現里,新列/字段的缺?。ㄖ担┖图s束子句會被忽略。你可以隨后用 ALTER TABLE 的 SET DEFAULT 形式設置缺?。ㄖ担?。(你還不得不用 UPDATE 把已存在行更新為缺省值。) 

在目前的實現里,只有 FOREIGN KEY 約束可以增加到表中.要創建或者刪除一個唯一約束,可以創建一個唯一索引(參閱 CREATE INDEX).要想增加 check?。z查)約束,你需要重建和重載該表,用的參數是 CREATE TABLE 命令的其他參數. 

要修改表的結構,你必須是表的所有人。不允許更改系統表結構的任何部分。PostgreSQL 用戶手冊 里有關于繼承的更多信息. 
 

請參考 CREATE TABLE 部分獲取更多有效參數的描述. 

用法
向表中增加一個 VARCHAR 列: 
ALTER TABLE distributors ADD COLUMN address VARCHAR(30);
對現存列改名: 
ALTER TABLE distributors RENAME COLUMN address TO city;
對現存表改名: 
ALTER TABLE distributors RENAME TO suppliers;
向表中增加一個外鍵約束: 
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL
兼容性

SQL92ADD COLUMN 形式是兼容的,除了上面說的缺?。ㄖ担┖图s束外。ALTER COLUMN 形式是完全兼容的。 
SQL92 對 ALTER TABLE 聲明了一些附加的Postgres目前還不直接支持的功能: 

ALTER TABLE table DROP CONSTRAINT constraint { RESTRICT | CASCADE }
增加或刪除表的約束(比如象檢查約束,唯一約束或外鍵約束)。要創建或刪除一個唯一約束,對應地創建或刪除一個唯一索引,要修改其他類型的約束,你需要重建和重載該表,使用 CREATE TABLE  命令的其他參數. 
例如,刪除表 distributors 的任何約束: 

CREATE TABLE temp AS SELECT * FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors AS SELECT * FROM temp;
DROP TABLE temp;
ALTER TABLE table DROP [ COLUMN ] column { RESTRICT | CASCADE }
前,要刪除一個現存的列,表必須重新創建和重新裝載: 
CREATE TABLE temp AS SELECT did, city FROM distributors;    
DROP TABLE distributors;
CREATE TABLE distributors (
    did      DECIMAL(3)  DEFAULT 1,
    name     VARCHAR(40) NOT NULL,
);
INSERT INTO distributors SELECT * FROM temp;
DROP TABLE temp;
重命名列/字段和表名是 PostgreSQL 擴展。SQL92 沒有提供這些。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 精品国产高清一区二区三区 | 97视频一二区 | 日本看片一区二区三区高清 | 黄色片免费看看 | 欧美交在线 | 一本色道久久综合狠狠躁篇适合什么人看 | 99视频有精品视频高清 | 看一级大毛片 | 欧美成人一区二区三区 | 99re66热这里只有精品8 | 亚洲视频成人在线 | 日韩中文字幕一区二区三区 | 亚洲日本韩国精品 | 欧美日韩影视 | 狠狠操视频网站 | 国产成人精品一区二区仙踪林 | 免费在线观看成年人视频 | 北京一级毛片 | 古装三级在线观看 | 国产电影av在线 | 九九热免费精品视频 | 色婷婷av一区二区三区久久 | 毛片电影网址 | 国产精品久久久久久久久久久天堂 | 国产亚洲精品久久久久久久久久 | 九草在线| 久久久久99一区二区三区 | 99视频有精品视频高清 | 久久国产精品久久久久 | 日本在线视频一区二区三区 | 久久国产在线观看 | 成人小视频在线播放 | 久久华人| 亚洲精品永久视频 | 亚洲看片网 | 国产一级片91 | 国产91久久精品 | 国产精选91 | 久久99精品久久久久久久久久久久 | 精品一区二区三区网站 | 中文字幕免费看 |