Re: [SQL ] 欄位A AND 欄位B 不得重複

看板Database作者 (LaPass)時間11年前 (2014/11/24 11:05), 編輯推噓4(4012)
留言16則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《brocker (別問我居士)》之銘言: : 資料庫名稱:MSSQL : 資料庫版本:2012 : 想請問一下大大們,我今天有一個資料表,要新增內容進去,裡面有兩個欄位,欄位A和欄位B : 欄位A的資料內容可以重複 : 欄位B的資料內容也可以重複 : 但是欄位A和欄位B的內容 新增下一筆時不能跟這兩欄同時一樣 : 也就是說欄位A(姓名)有一筆叫王小明 欄位B(打卡日期)是2014/9/9 : 姓名或是欄位單獨的時候可以重複 : 但是一起的時候不能重複 : 請問一下這樣條件約束(Constraint)要怎麼設定,謝謝! ALTER TABLE `表名稱` ADD UNIQUE `索引名稱` ( `A` , `B` ); A可重複 B也可重複 但是A跟B同時重複的時候,就會跟你講說已經有這個索引,塞不進去 還有我記得主鍵也可以同時設定在兩個欄位上 運作方式同上,會把兩個欄位一起判斷 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.219.211 ※ 文章網址: http://www.ptt.cc/bbs/Database/M.1416798308.A.0BE.html

11/24 12:00, , 1F
請問,A:小明 B:NUL 加入這樣的資料兩筆,加的進去嗎?
11/24 12:00, 1F

11/24 12:50, , 2F
我把來也是想說把兩個加起來設成為一值就好了
11/24 12:50, 2F

11/24 12:50, , 3F
可是我上面說的A欄位有值B欄位NULL
11/24 12:50, 3F

11/24 12:51, , 4F
如果已經有一筆這樣的資料,第二筆在進去的時候應該
11/24 12:51, 4F

11/24 12:51, , 5F
會失敗吧,這樣應該就不符合原PO條件
11/24 12:51, 5F

11/24 13:26, , 6F
應該不能加沒錯,不過不是說不允許A、B都一樣的狀況嗎?那
11/24 13:26, 6F

11/24 13:27, , 7F
當然包跨NULL
11/24 13:27, 7F

11/24 14:29, , 8F
因為我看到原問題有一個"姓名或是欄位單獨的時候可以重
11/24 14:29, 8F

11/24 14:29, , 9F
複",我還以為她希望可以有兩筆小明,而沒有日期
11/24 14:29, 9F

11/24 14:29, , 10F
或許我太執著於這一點的,應該先釐清原問題
11/24 14:29, 10F

11/24 14:31, , 11F
那這個解法應該就沒問題,那我可以延伸這題請教一下
11/24 14:31, 11F

11/24 14:31, , 12F
如果是可以有兩筆 小明, NULL這種狀況該怎麼解?
11/24 14:31, 12F

11/24 14:53, , 13F
應該也只能在insert之前下判斷式了吧
11/24 14:53, 13F

11/24 14:54, , 14F
或是你講的trigger
11/24 14:54, 14F

11/24 15:00, , 15F
嗯..也就是約束條件做不到嗎? 因為我不知道怎麼做
11/24 15:00, 15F

11/24 15:00, , 16F
只好用trigger
11/24 15:00, 16F
文章代碼(AID): #1KSg1a2- (Database)
文章代碼(AID): #1KSg1a2- (Database)