91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在PostgreSQL中添加各種約束

發布時間:2021-02-03 13:27:56 來源:億速云 閱讀:966 作者:Leah 欄目:開發技術

如何在PostgreSQL中添加各種約束?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

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. 修改字段的數據類型

alter table goods alter column sid type character varying;

7. 重命名字段

alter table goods rename column sid to ssid;

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

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

1)主鍵約束(PRIMARY KEY)

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

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

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

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

2)唯一性約束(UNIQUE)

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

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

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

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

3)唯一索引(INDEX)

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

唯一性約束和主鍵約束的區別:

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

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

約束和索引, 前者是用來檢查數據的正確性,后者用來實現數據查詢的優化,目的不同。

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

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

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

也就是說其實唯一約束是通過創建唯一索引來實現的。

在刪除時這兩者也有一定的區別:

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

關于如何在PostgreSQL中添加各種約束問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲松县| 淮北市| 垫江县| 米林县| 田东县| 商河县| 根河市| 惠来县| 庄河市| 荆州市| 轮台县| 金坛市| 崇州市| 房产| 遂昌县| 渝北区| 平乡县| 依兰县| 金堂县| 合川市| 开平市| 丹棱县| 竹溪县| 屏南县| 松江区| 肥东县| 英吉沙县| 伊吾县| 陆川县| 淄博市| 固阳县| 施甸县| 微山县| 彩票| 合山市| 拜泉县| 临桂县| 任丘市| 汨罗市| 武乡县| 桐城市|