【问题标题】:MySQL Error 1452 Inserting new DataMySQL 错误 1452 插入新数据
【发布时间】:2016-04-02 16:41:03
【问题描述】:

我对 SqL 的世界还很陌生,我遇到了大多数人似乎已经解决但我无法解决的常见问题,在插入数据时我收到错误 1452,我在这里尝试了以下步骤Mysql error 1452 - Cannot add or update a child row: a foreign key constraint fails

每个解决方案都失败了这是我的 Sql 脚本:

# Author: Waheed Rafiq
# Date: 02/04/2016
# testX database
# list to Create tables 

# tbl_Admin 
create table tbl_admin(
adminID smallint not null  primary key auto_increment,
employeeID smallint null ,
admin_employee_Fname varchar(20),
admin_employee_Sname varchar(20),

admin_accessRight enum ('standard','accounts','classic','admin')
); 
# add dummy data :
insert tbl_admin values(1,1,'Waheed','Rafiq','admin');
insert tbl_admin values(2,2,'Sarah','Rafiq','classic');
insert tbl_admin values(3,3,'Philps','Smiths','standard');
insert tbl_admin values(4,4,'John','Edwards','standard');
insert tbl_admin values(5,5,'Ash','Codi','accounts');
insert tbl_admin values(6,6,'Kath','Womi','admin');

# tbl_employee 
create table tbl_employee(
employeeID smallint not null  primary key auto_increment,
adminID smallint null,
employee_Fname varchar(20),
employee_Sname varchar(20),
employee_AddressL1 varchar(100),
employee_AddressL2 varchar(100),
employee_PostCode varchar(10),
employee_tel_type enum ('work','personal','other'),
employee_telephone varchar(30) ,
employee_JobRole varchar(20),
employee_Salary float

); 

# add dummpy data to employee table

 insert tbl_employee values(1,1,'Waheed','Rafiq','36 do thed        road','Alcala','2345','work','07525177630','Admin','60.568');
insert tbl_employee values(2,2,'Sarah','Rafiq','126 Cala de  Polo','Alcala','4345','personal','034525177630','Office Admin','1.568');
insert tbl_employee values(3,3,'Philps','smiths','367 fake de pounda','Alcala','345','work','09258177630','Maintance','15.568');
insert tbl_employee values(4,4,'John','Edwards','36 Greader los OSO','Madrid','1045','work','07525177888','office clark','2.568');
insert tbl_employee values(5,5,'Ash','Codi','88 do thed road','Alcala','2345','work','07528547858','Finance','30.568');
insert tbl_employee values(6,6,'Kath','Womi','555 Gotham road','Madrid','1111','work','07525177999','Admin Techi','40.568');

# check up to this point all works fine dummpy data is added.

现在我添加 FK 键:在单独的脚本中

# Author: Waheed Rafiq
# Date: 02/04/2016
# testx database
# Add list of FK to database.

# FK 到 tbl_admin

alter table blindx_test1.tbl_admin add foreign key(employeeID) References tbl_employee(employeeID);

# 将 FK 添加到 tbl_admin

alter table blindx_test1.tbl_employee add foreign key(adminID) references  tbl_admin(adminID); 

这部分也可以正常工作,现在将新数据插入表时出现问题,我收到错误代码 1452:

insert tbl_admin values( 7,7,'Samia','Fazal','admin');

insert tbl_employee values(7,7 ,'Samia','Fazal','786 Bromford    Lane','Madrid','1110','other','07525177999','Admin Techi','40.568');

任何帮助或支持,将不胜感激,如此简单的事情现在变得很难:(我相信你们会发现一些显而易见的事情。

感谢您的支持。如果我确实找到了一个应该更新我的帖子的修复程序,我会继续寻找。

【问题讨论】:

  • 始终在insert 语句中列出列。然后您可能会看到导致问题的原因并能够轻松解决它。

标签: mysql sql


【解决方案1】:

对于这个查询:

insert tbl_admin values( 7,7,'Samia','Fazal','admin');

阅读整个错误:

无法添加或更新子行:外键约束失败 (db_9_3137a.tbl_admin,约束tbl_admin_ibfk_1外键 (employeeID) 参考资料tbl_employee (employeeID))

这很清楚。您正尝试在 employeeID 中插入值 7。没有这样的值,所以你得到了错误。

Here 是一个 SQL Fiddle,代码一直到最后两次插入。

【讨论】:

  • 感谢 Gordon 的反馈,我误解的是employeeID 的值为7,每个表中的adminID 也是如此,它们被声明为PK 和FK 键。那么如何在这些字段中插入值呢?有点迷路了,另外我没有字段调用“empid”你是说employeeID吗?
  • @WaheedRafiq 。 . .在tbl_admintbl_employees 中没有值“7”。参考表需要包含这些值。
猜你喜欢
  • 2012-01-25
  • 2018-09-18
  • 2012-04-02
  • 2017-01-03
  • 2019-11-26
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
相关资源
最近更新 更多