无法添加或更新子行:使用mysql的外键

时间:2015-04-09 11:30:04

标签: mysql

我创建了两个表学生和订单,我试图在表中添加一个外键"命令"但我有这个错误:

Cannot add or update a child row: a foreign key constraint fails

表学生:

 CREATE TABLE STUDENTS (  
 ID varchar(50)  NOT NULL,  
 NAME VARCHAR (20) NOT NULL,  
 AGE INT NOT NULL,  
 ADDRESS CHAR (25),  
 PRIMARY KEY (ID)  
  ) 

表ORDERS

CREATE TABLE Orders  
(O_Id int NOT NULL PRIMAY KEY,  
Order_No int NOT NULL,ID varchar(50))  

将外键添加到"命令":

ALTER TABLE Orders  
ADD CONSTRAINT fk_PerOrders  
FOREIGN KEY(ID)  
REFERENCES STUDENTS (ID) 

2 个答案:

答案 0 :(得分:2)

检查[订单]表当前是否有任何不在[学生]表中的ID。

答案 1 :(得分:0)

我认为您正在尝试添加外键约束,并且父表中没有相应的主键。 尝试运行

SET FOREIGN_KEY_CHECKS=0

你的ALTER TABLE语句。当你完成运行

SET FOREIGN_KEY_CHECKS=1