我知道這是第一個問題,但有人問我,但我無法給他適當的答案。 存在具有多對多關係保存在employee_technology_rel
.Employee表有兩個表Employee,Technology
fields- emp_id (auto_increment)
,emp_name(varchar)
,DOB (date)
哪裏有科技領域tech_id(auto_increment)
,tech_name(varchar)
這兩個表可以names.which唯一約束的重複,我應該定義允許獨特條目?如何爲員工表中的記錄分配唯一標識符?
回答
您可以定義表employee_technology_rel
唯一項目,
ALTER TABLE employee_technology_rel
ADD CONSTRAINT emptech_pk PRIMARY KEY (emp_id, tech_id)
// or if you have set a primary key already, you can still define via UNIQUE
ALTER TABLE employee_technology_rel
ADD CONSTRAINT emptech_uq UNIQUE (emp_id, tech_id)
它的作用是隻允許獨特的技術爲每一位員工。
爲了讓您在表Employee
有獨特的emp_name
以及獨特tech_name
上表Technology
,你也可以通過添加唯一約束
ALTER TABLE Employee ADD CONSTRAINT emp_uq UNIQUE (emp_name)
ALTER TABLE Technology ADD CONSTRAINT tech_uq UNIQUE (tech_name)
但在添加新員工時,我是不分配任何技術給他,我插入只插入員工的詳細信息。我應該爲員工詳細信息的唯一性定義任何專欄嗎? – user2067120 2013-03-14 12:59:18
否 - 這就是emp_id列的內容。 employee_technology_rel中某行的*缺失將意味着該員工沒有分配技術。員工表和技術表都不依賴於employee_technology_rel表;相反,該表依賴於其他兩個,但僅限於員工被分配技術。 – 2013-03-14 13:17:39
你想在定義一個複合主鍵更改表employee_technology_rel中的兩列:emp_id和tech_id。
唯一索引和唯一約束是相同的。他們實現了相同的目標 。 SQL性能對於兩者都是相同的。
添加唯一約束 ALTER TABLE dbo。添加約束 唯一聚集()ON [PRIMARY]
添加唯一索引 CREATE UNIQUE聚集索引 ON DBO。 ()ON [PRIMARY]
源sqlauthority.com和從谷歌搜索msdn: 「SQL server unique index」。
- 1. 如何識別重複記錄的唯一標識符?
- 2. 唯一記錄標識符值
- 3. 在actionscript3中爲對象數組分配唯一標識符
- 4. SQL - 爲DISTINCT記錄分配唯一ID
- 5. 在Javascript中分配唯一標識號
- 6. TSQL標誌具有唯一唯一標識的重複記錄
- 7. 如何爲每個記錄序列分配唯一的ID?
- 8. 更新配置單中表中新增記錄的唯一標識列
- 9. 爲域對象分配唯一標識符有哪些做法?
- 10. Microsoft SQL - 識別重複項並分配唯一標識符
- 11. 唯一標識符
- 12. 根據sas中多個變量的查找值爲一組記錄分配一個唯一的標識
- 13. 生成用於標識記錄的唯一隨機字符串
- 14. 分配唯一的數字標識符的模板類
- 15. 爲表格的每條記錄創建一個唯一的標識(PIN)
- 16. 在記錄組內分配唯一ID
- 17. 在scala中唯一標識演員
- 18. 跨表的唯一標識符
- 19. YouTube的唯一標識符
- 20. PC的唯一標識符
- 21. Mac的唯一標識符?
- 22. NSManagedObject的唯一標識符
- 23. SlideMaster的唯一標識符
- 24. 如何適應表中不同類型的唯一標識符?
- 25. 從沒有唯一標識的重複記錄中獲取第一條記錄
- 26. 如何爲數據庫對象分配一個唯一的標識
- 27. 如何爲表中的匹配值分配唯一值?
- 28. 如何類成員標識符的分辨率在C++工作
- 29. 爲每個類的實例分配唯一標識號
- 30. 如何將唯一標識符分配給不同列組中的唯一數據幀值集合?
你想讓這個名字獨一無二嗎?或者你想唯一標識一個記錄?爲唯一標識一行你已經有自動增量的ID字段 – Habib 2013-03-14 12:49:16
爲唯一記錄,我有'emp_id'這是'auto_increment',我不想讓現有員工插入 – user2067120 2013-03-14 12:51:58