Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使2个外键组合为唯一键且不能复制_Php_Mysql - Fatal编程技术网

Php 如何使2个外键组合为唯一键且不能复制

Php 如何使2个外键组合为唯一键且不能复制,php,mysql,Php,Mysql,我有一张桌子 CREATE TABLE IF NOT EXISTS `hrms_employee_leave` ( `employee_leave_id` int(11) NOT NULL, `employee_id` int(11) NOT NULL, `leave_category_id` int(11) NOT NULL, `days` int(11) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; 它

我有一张桌子

CREATE TABLE IF NOT EXISTS `hrms_employee_leave` (
`employee_leave_id` int(11) NOT NULL,
 `employee_id` int(11) NOT NULL,
`leave_category_id` int(11) NOT NULL,
`days` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
它将显示员工有多少休假,这是此表中的数据存储

Employee_id = 25, 
leave_category_id = 2, 
days = 14

Employee_id = 25,
leave_category_id = 3,
days = 14
当我内部连接表时,输出如下

Employee Name = Foo,
Leave Category = Annual Leave,
days = 14
Foo has 14 days of Annual Leave.

Employee Name = Foo,
Leave Category = Medical Leave,
days = 14
Foo has 14 days of Medical Leave.
如何组合员工id离开类别id成为一个唯一的键,不能重复,以防止用户多次插入

Employee_id = 25, 
leave_category_id = 2, 
days = 14

Employee_id = 25,
leave_category_id = 3,
days = 14

添加多列唯一索引有多种方法。例如,您可以在create table语句中执行此操作:

CREATE TABLE IF NOT EXISTS `hrms_employee_leave` (
`employee_leave_id` int(11) NOT NULL,
 `employee_id` int(11) NOT NULL,
`leave_category_id` int(11) NOT NULL,
`days` int(11) NOT NULL,
  CONSTRAINT `uniqueindex_1` UNIQUE (`employee_leave_id`, `leave_category_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
这样一来,
emloyee\u leave\u id
leave\u category\u id
组合就不能重复了。此外,它们都不能为NULL。如果这些列可以同时作为外键,则两者都可以


请参阅示例,其中这两列都是外键和复合唯一索引:

您好,谢谢您的重播,但我想要的是员工id+离开类别id的组合,不能重复是的,这就是我写的内容和意思。注意句子开头附近的“否”一词。您好,如果我按照您写的内容创建了我的表,但另一名员工不能使用相同的休假类别id,
employee\u leave\u id是自动递增的数字
可以。请参见两名不同员工使用相同休假类别id的示例。不能相同(不能重复)的是,给定的员工休假类别id中有多行具有相同休假类别id。