校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PostgreSQL 添加各種約束語法的操作

PostgreSQL 添加各種約束語法的操作

熱門標簽:電銷機器人能補救房產中介嗎 天津開發(fā)區(qū)地圖標注app 濟南外呼網(wǎng)絡電話線路 地圖標注要花多少錢 電話機器人怎么換人工座席 移動外呼系統(tǒng)模擬題 400電話申請客服 廣州電銷機器人公司招聘 江蘇400電話辦理官方

1. 添加主鍵

alter table goods add primary key(sid);

2. 添加外鍵

alter table orders add foreign key(goods_id) references goods(sid) on update cascade on delete cascade;

on update cascade: 被引用行更新時,引用行自動更新;

on update restrict: 被引用的行禁止更新;

on delete cascade: 被引用行刪除時,引用行也一起刪除;

on dellete restrict: 被引用的行禁止刪除;

3. 刪除外鍵

alter table orders drop constraint orders_goods_id_fkey;

4. 添加唯一約束

alter table goods add constraint unique_goods_sid unique(sid);

5. 刪除默認值

alter table goods alter column sid drop default;

6. 修改字段的數(shù)據(jù)類型

alter table goods alter column sid type character varying;

7. 重命名字段

alter table goods rename column sid to ssid;

補充:PostgreSQL-主鍵約束和唯一性約束的區(qū)別

在建索引的過程中遇到一些問題,網(wǎng)絡上搜索了一下基礎知識。一直以為唯一索引就已經是主鍵了,至少在pg中看來不是這么回事兒。

1)主鍵約束(PRIMARY KEY)

1) 主鍵用于唯一地標識表中的每一條記錄,可以定義一列或多列為主鍵。

2) 是不可能(或很難)更新。

3) 主鍵列上沒有任何兩行具有相同值(即重復值),不允許空(NULL)。

4) 主健可作外健,唯一索引不可。

2)唯一性約束(UNIQUE)

1) 唯一性約束用來限制不受主鍵約束的列上的數(shù)據(jù)的唯一性,用于作為訪問某行的可選手段,一個表上可以放置多個唯一性約束。

2) 只要唯一就可以更新。

3) 即表中任意兩行在 指定列上都不允許有相同的值,允許空(NULL)。

4) 一個表上可以放置多個唯一性約束。

3)唯一索引(INDEX)

創(chuàng)建唯一索引可以確保任何生成重復鍵值的嘗試都會失敗。

唯一性約束和主鍵約束的區(qū)別:

(1)唯一性約束允許在該列上存在NULL值,而主鍵約束的限制更為嚴格,不但不允許有重復,而且也不允許有空值。

(2)在創(chuàng)建唯一性約束和主鍵約束時可以創(chuàng)建聚集索引和非聚集索引,但在 默認情況下主鍵約束產生聚集索引,而唯一性約束產生非聚集索引

約束和索引, 前者是用來檢查數(shù)據(jù)的正確性,后者用來實現(xiàn)數(shù)據(jù)查詢的優(yōu)化,目的不同。

唯一性約束與唯一索引有所不同:

(1)創(chuàng)建唯一約束會在Oracle中創(chuàng)建一個Constraint,同時也會創(chuàng)建一個該約束對應的唯一索引。

(2)創(chuàng)建唯一索引只會創(chuàng)建一個唯一索引,不會創(chuàng)建Constraint。

也就是說其實唯一約束是通過創(chuàng)建唯一索引來實現(xiàn)的。

在刪除時這兩者也有一定的區(qū)別:

刪除唯一約束時可以只刪除約束而不刪除對應的索引,所以對應的列還是必須唯一的,而刪除了唯一索引的話就可以插入不唯一的值。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • PostgreSQL 查看表的主外鍵等約束關系詳解
  • PostgreSQL中enable、disable和validate外鍵約束的實例
  • PostgreSQL 刪除check約束的實現(xiàn)

標簽:昭通 辛集 杭州 寶雞 榆林 溫州 濮陽 海西

巨人網(wǎng)絡通訊聲明:本文標題《PostgreSQL 添加各種約束語法的操作》,本文關鍵詞  PostgreSQL,添加,各種,約束,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PostgreSQL 添加各種約束語法的操作》相關的同類信息!
  • 本頁收集關于PostgreSQL 添加各種約束語法的操作的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 喀什市| 门源| 军事| 阳城县| 余姚市| 若尔盖县| 昔阳县| 彭阳县| 平潭县| 蓝田县| 望都县| 苍南县| 瑞安市| 六枝特区| 马关县| 来安县| 洞头县| 滁州市| 青州市| 黄冈市| 宝丰县| 吉安市| 英山县| 南通市| 剑川县| 苍山县| 兴文县| 南阳市| 红安县| 绥芬河市| 彩票| 衡阳县| 上杭县| 林口县| 永顺县| 米泉市| 乌审旗| 华亭县| 延吉市| 东乡族自治县| 太原市|