Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
Mysql 如何正确创建外键?_Mysql_Foreign Keys_Ddl - Fatal编程技术网

Mysql 如何正确创建外键?

Mysql 如何正确创建外键?,mysql,foreign-keys,ddl,Mysql,Foreign Keys,Ddl,我有下面的SQL mysql-sql> create table Employees (Emp_ID int not null primary key, Emp_Name varchar(20),Hours_LoggedIn int); Query OK, 0 rows affected (0.09 sec) mysql-sql> insert into Employees (Emp_ID,Emp_Name,Hours_LoggedIn) values (001,'Dinesh',9

我有下面的SQL

mysql-sql> create table Employees (Emp_ID int not null primary key, Emp_Name varchar(20),Hours_LoggedIn int);
Query OK, 0 rows affected (0.09 sec)
mysql-sql> insert into Employees (Emp_ID,Emp_Name,Hours_LoggedIn) values (001,'Dinesh',9);
Query OK, 1 row affected (0.03 sec)
mysql-sql> insert into Employees (Emp_ID,Emp_Name,Hours_LoggedIn) values (002,'Shruthi',8);
Query OK, 1 row affected (0.02 sec)
mysql-sql> insert into Employees (Emp_ID,Emp_Name,Hours_LoggedIn) values (003,'Sukanya',7);
Query OK, 1 row affected (0.00 sec)
mysql-sql> insert into Employees (Emp_ID,Emp_Name,Hours_LoggedIn) values (004,'Varun',6);
Query OK, 1 row affected (0.00 sec)
mysql-sql> insert into Employees (Emp_ID,Emp_Name,Hours_LoggedIn) values (005,'Karthi',5);
Query OK, 1 row affected (0.01 sec)


mysql-sql>  create table Project (Project_ID int not null primary key,Project_Name varchar(20),Project_Manager varchar(20),CostPerHour int,Minimum_LoggedInHours int,foreign key(Minimum_LoggedInHours) references Employees(Hours_LoggedIn));
我得到下面的错误

ERROR: 1215 (HY000): Cannot add foreign key constraint

我需要用Hours_LoggedIn作为FK。有人能帮我找到正确的代码吗?

MySQL需要索引外键引用的任何列。请尝试以下操作:

ALTER TABLE Employees ADD INDEX hours_logged_in_idx(Hours_LoggedIn);
在创建项目表之前。请注意,由于小时数不一定是唯一的,因此这可能会导致意外行为