在MYSQL表中插入数据错误

时间:2016-10-26 08:37:52

标签: mysql

我有很大的问题。我有2个相关的表:Parent和Child,它们与primary和foireign密钥相关。

主要表格:

CREATE TABLE `project_main` (
  `ProjectMainId` int(11) NOT NULL,
  `ProjectTitle` varchar(150) DEFAULT NULL,
  `ProjectShortTitle` varchar(50) DEFAULT NULL,
  `ProjectIntroduction` text

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

子表:

CREATE TABLE `project_detail` (
  `ProjectDetailId` int(11) NOT NULL,
  `ProjectProtocolNumber` int(11) DEFAULT NULL,
  `ProjectNumberPatients` int(11) DEFAULT NULL,
  `ProjectNumberSites` int(11) DEFAULT NULL
  `ProjectMainId` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

当我尝试将数据插入父表时,MySQL说:

  

1452 - 无法添加或更新子行:外键约束   失败(ctb_db.project_main,CONSTRAINT project_main_ibfk_1   FOREIGN KEY(ProjectMainId)参考project_detail   (ProjectMainId))

MSSQL 数据库中没有发生这种情况:(

的问候, Vasko

5 个答案:

答案 0 :(得分:0)

我正在尝试使用PHPMyAdmin和SQLYog插入数据。我没有使用代码插入。这对我有用:)

答案 1 :(得分:0)

您正在尝试在名为ProjectMainId的子键列中插入一个值,该值在Project_main表中不存在。我的管理员自动创建了一个关系。

答案 2 :(得分:0)

不,我只是将数据插入Project_main表。 Project_detail为空。我将数据插入到Project_main中,而且当autoincrement生成ProjectMainId时,我将插入到ProjectDetail中。但是关系不允许我将数据插入到project_main表中。这是一个问题。

答案 3 :(得分:0)

不要为主表定义外键关系。在子表上定义。在这里,您为主表定义了FOREIGN KEY约束。将此约束设置为子表。你在这里采取了相反的方式。

答案 4 :(得分:0)

我想到了什么是问题。我在SQLYog中创建了关系并且它反转了关系:(现在我正在修复PHPMYADMIN设计器中的所有关系。请不要使用SQLYog。