我想创建一个名为maneges的表,其中一个雇员管理另一个雇员。该表的值为Manager_id和Employee_id,它们都引用了另一个名为employee的表中的值Emp_id。我想设置一个约束条件,使表中不能有两个示例,其中x管理y,y管理x。这是没有意义的。2这个表的另一个属性是经理可以有多个雇员,雇员可以由多个经理管理。3所以,UNIQUE关键字在这个上下文中对我来说似乎没有多大用处。
CREATE TABLE manages
(
Manager_id INTEGER REFERENCES employee,
Employee_id INTEGER REFERENCES employee
)
我知道NULL关键字,但我只知道如何合并NOT NULL。
CREATE TABLE manages
(
Manager_id INTEGER REFERENCES employee NOT <?>,
Employee_id INTEGER REFERENCES employee NOT <?>
)
1条答案
按热度按时间kuhbmx9i1#
将NOT NULL约束条件放在数据类型之后。还应使这两列都成为主键:
主键也会使列为NOT NULL,但我更喜欢明确地说明这一点。
这仍然允许一个雇员由多个经理管理,并且允许一个经理管理多个雇员。它 * 不允许 * 两次插入相同的employee_id和manager_id组合。