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 accounts accountid nvarchar 20 pri...
SQL中Unique約束有什麼用啊
是a萌呀 作用為 唯一約束保證在一個欄位或者一組欄位裡的資料與表中其它行的資料相比是唯一的。建立唯一約束可確保在不參與主鍵的特定列中不輸入重複值。當唯一約束和主鍵都強制唯一性時,如果滿足下列條件,則應將唯一約束而不是主鍵約束附加到表上 1 希望在列或列的組合中強制唯一性。可將多個唯一約束附加到表,但...
怎樣在sql server 2019中讓主鍵自動增長
汗,選中主鍵列,然後在下面的屬性裡面有個是否是標識,前面有個 號,你點開,然後選擇是就ok拉。 sql server 通過 identity 來設定 引數有2個,一個是 初始值 一個是 增量 預設情況下 insert 語句中,不能對 identity 的欄位進行賦值。1 create table t...