我知道这是第一个问题,但有人问我,但我无法给他适当的答案。
在Employee,Technology
中有两个表格employee_technology_rel
保存了多对多关系。员工表格包含字段 - emp_id (auto_increment)
,emp_name(varchar)
,DOB (date)
其中,技术字段为{{} 1}},tech_id(auto_increment)
这两个表允许重复名称。我应该定义哪个唯一约束来允许唯一条目?
答案 0 :(得分:0)
您可以在表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)
它的作用是它只为每位员工提供独特的技术。
为了让您在表emp_name
上拥有唯一Employee
以及在表tech_name
上拥有唯一Technology
,您还可以通过添加唯一约束来更改表< / p>
ALTER TABLE Employee ADD CONSTRAINT emp_uq UNIQUE (emp_name)
ALTER TABLE Technology ADD CONSTRAINT tech_uq UNIQUE (tech_name)
答案 1 :(得分:0)
您希望在employee_technology_rel中的两列上定义复合主键:emp_id和tech_id。
答案 2 :(得分:0)
来自Google搜索的唯一索引和唯一约束是相同的。他们实现同样的目 目标。两者的SQL性能相同。
添加唯一约束 ALTER TABLE dbo。添加约束 UNIQUE NONCLUSTERED()ON [PRIMARY]
添加唯一索引 创建独特的非集群索引 在dbo。 ( ) 上 [PRIMARY]