看板 Database 關於我們 聯絡資訊
※ 引述《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
BigLoser: 請問,A:小明 B:NUL 加入這樣的資料兩筆,加的進去嗎? 11/24 12:00
BigLoser: 我把來也是想說把兩個加起來設成為一值就好了 11/24 12:50
BigLoser: 可是我上面說的A欄位有值B欄位NULL 11/24 12:50
BigLoser: 如果已經有一筆這樣的資料,第二筆在進去的時候應該 11/24 12:51
BigLoser: 會失敗吧,這樣應該就不符合原PO條件 11/24 12:51
LaPass: 應該不能加沒錯,不過不是說不允許A、B都一樣的狀況嗎?那 11/24 13:26
LaPass: 當然包跨NULL 11/24 13:27
BigLoser: 因為我看到原問題有一個"姓名或是欄位單獨的時候可以重 11/24 14:29
BigLoser: 複",我還以為她希望可以有兩筆小明,而沒有日期 11/24 14:29
BigLoser: 或許我太執著於這一點的,應該先釐清原問題 11/24 14:29
BigLoser: 那這個解法應該就沒問題,那我可以延伸這題請教一下 11/24 14:31
BigLoser: 如果是可以有兩筆 小明, NULL這種狀況該怎麼解? 11/24 14:31
LaPass: 應該也只能在insert之前下判斷式了吧 11/24 14:53
LaPass: 或是你講的trigger 11/24 14:54
BigLoser: 嗯..也就是約束條件做不到嗎? 因為我不知道怎麼做 11/24 15:00
BigLoser: 只好用trigger 11/24 15:00