如何正确创建外键?
how to properly create a foreign key?
我有以下 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);
在创建项目之前 table。请注意,由于 Hours_LoggedIn 不一定是唯一的,因此这可能会导致意外行为。
我有以下 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);
在创建项目之前 table。请注意,由于 Hours_LoggedIn 不一定是唯一的,因此这可能会导致意外行为。