SQl中暫時讓主鍵約束失效,再讓其主鍵約束有效

時間 2021-10-27 04:39:39

1樓:我要註冊和登入

先把主鍵drop掉alter table books drop constraint pk_books_bookid ;

然後再建立:alter table books add constraint pk_books_bookid primary key (bookid)

--也把那個外來鍵去掉看看。因為有主外來鍵約束就不能去掉主鍵的。

2樓:匿名使用者

這矛盾呢。

解釋:主鍵的作用就是確認唯一性呢,把主鍵刪掉之後是可以插入相同資料,可是此時在設定主鍵生效,發現有相同的資料,是沒法設定的,所以肯定不行的。如果就沒有主鍵衝突,那隨時可以刪除主鍵,新增主鍵(如果主鍵有外來鍵關聯的情況下,也不一定能夠刪除成功的)。

3樓:

刪除約束

alter table books

drop constraint pk_books_bookid加約束alter table books

addconstraint pk_books_bookid primary key clustered (bookid)

4樓:席藹權問雁

暈啊、、這個問題我暈。。既然你想設為有重複的。那你該列就不能作為主鍵,sql中主鍵的定義你好好看看。不然,你有重複的這個列,你絕對是設成主鍵的。。

如果你想設重複的話,那你最好單獨再加一個自動增長列,把這個列設為主鍵列。那麼author列就可以有重複值了、

主鍵約束,外來鍵約束,空值約束,預設值約束,唯一約束,檢查約束的各個作用是什麼?

5樓:匿名使用者

主鍵約束:列內容不能重複,且不能為空

外來鍵約束:內容必須是所關聯主鍵的值其中的值空值約束:不能為空

預設約束:當插入時沒有賦值,會使用預設值

唯一約束:列的內容都是唯一的,不以重複

檢查約束:列的內容必須符合要求。如check (job in(‘engineer’,’sales’,’manager’));

6樓:匿名使用者

主鍵約束:確定行的標識,不能為空

外來鍵約束:內容必須是所關聯主鍵的值其中的值空值約束:不能為空

預設約束:當插入時沒有賦值,會使用預設值

唯一約束:列的內容都是唯一的,不以重複

檢查約束:列的內容必須符合要求。如check (job in(‘engineer’,’sales’,’manager’));

7樓:匿名使用者

主鍵約束在表中定義一個主鍵來唯一確定表中每一行資料的識別符號.

外來鍵約束主要用來維護兩個表之間資料的一致性。

唯一約束保證在一個欄位或者一組欄位裡的資料與表中其它行的資料相比是唯一的。

別的還不太清楚,希望對你有用!!!!!

sql主鍵約束和唯一約束有什麼區別呢?謝謝

8樓:有雨入夢

我理解的是主鍵約束是唯一約束的一種,不過在一張表裡面主鍵約束只可一有一個,唯一約束就不一樣了

9樓:dl_會飛的青蛙

主鍵不能為空

而唯一可以為空

相同的就是 都不允許重複

10樓:

主鍵:一張表只能定義一個主鍵,主鍵可以包含一個或一個以上的欄位,並且這些欄位的值必須是唯一的。除了主鍵的欄位不允許為空外,其它方面主鍵和唯一性索引很相似。

唯一約束:可以在一個欄位,一組欄位或一個表上定義唯一性約束,保證了不出現相同的值。

請問sql段可不可以即是主鍵又是外來鍵

墨汁諾 可以,這說明這兩張表的主鍵相關聯,只是那張是主表 就是該表的主鍵作為從表的外來鍵 那張是從表 該表的主鍵同時也是外來鍵 需要自己定義好。create table baidispatch cost id varchar 50 not null comment id belong varchar...

Hibernate中如何對存在複合主鍵的表進行查詢

如果生成這兩個類,說明你的person表裡面有聯合主鍵 你直接用person這個po查就可以了 直接查詢主表 from person 就可以了.根據主鍵 查詢單個實體.personid id new personid id.seta id.setb session.findbyid person.c...

RPG Maker XP怎麼讓怪暫時消除

永久的還是暫時的?永久的 整個遊戲不會再出現第二次 在設定事件的時候,當事件設定完畢後,雙擊事件執行的最後一行,點第一頁的右邊一行的第三個 獨立事件開關操作 點確定,再在這個事件中新建乙個事件頁,這個事件頁什麼都不要設定,在左上角的事件出現條件中勾上第四個 獨立開關a on,然後點應用就可以了。暫時...