2013-11-27 108 views
0

這些是我現在所面臨的問題與這兩個表的創建語句: 第一個表:不能添加或更新子行,外鍵約束失敗

CREATE TABLE `hrm__companyteam` (
`id_team` int(11) NOT NULL AUTO_INCREMENT, 
`id_department` int(11) NOT NULL, 
`team_name` varchar(255) NOT NULL DEFAULT '', 
`notes` mediumtext NOT NULL, 
PRIMARY KEY (`id_team`), 
KEY `id_company` (`id_department`), 
CONSTRAINT `hrm__companyTeam_ibfk_1` FOREIGN KEY (`id_department`) REFERENCES `hrm__companydepartment` (`id_department`) ON DELETE CASCADE, 
CONSTRAINT `hrm__companyteam_ibfk_1` FOREIGN KEY (`id_department`) REFERENCES `hrm__companydepartment` (`id_department`) ON DELETE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 

二表

CREATE TABLE `hrm__companyjobtitle` (
`id_job_title` int(11) NOT NULL AUTO_INCREMENT, 
`id_team` int(11) NOT NULL DEFAULT '0', 
`job_title_name` varchar(255) NOT NULL DEFAULT '', 
`notes` mediumtext NOT NULL, 
PRIMARY KEY (`id_job_title`), 
KEY `id_division` (`id_team`), 
CONSTRAINT `hrm__companyJobTitle_ibfk_1` FOREIGN KEY (`id_team`) REFERENCES `hrm__companyteam` (`id_team`) ON DELETE CASCADE, 
CONSTRAINT `hrm__companyjobtitle_ibfk_1` FOREIGN KEY (`id_team`) REFERENCES `hrm__companyteam` (`id_team`) ON DELETE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 

當我嘗試執行以下查詢:

INSERT INTO `hr_db`.`hrm__companyjobtitle` (

`id_job_title` , 
`id_team` , 
`job_title_name` , 
`notes` 
) 
VALUES (
'1', '1', 'IT', '' 
) 

我得到THI ■錯誤:

1452 - 不能添加或更新子行,外鍵約束失敗(hr_dbhrm__companyjobtitle,約束hrm__companyJobTitle_ibfk_1外鍵(id_team)參考文獻hrm__companyteamid_team)ON DELETE CASCADE)

請幫助...我在做什麼錯。如果您需要更多詳細信息,請讓我知道。

+1

錯誤說,它在那裏,你需要在hrm__companyteam先插入數據,並且只能插入數據在hrm__companytitle作爲約束指定hrm__companytitle.id_team必須在hrm__companyteam.id_team – Satya

+0

匹配值的數據是在那裏的hrm_company隊表已經。我之前添加了2行。但仍有相同的結果 –

+0

請示您的表格數據 – Satya

回答

1

我用以下語句:

CREATE TABLE `hrm__companyteam` (
    `id_team` INT(11) NOT NULL AUTO_INCREMENT, 
    `id_department` INT(11) NOT NULL, 
    `team_name` VARCHAR(255) NOT NULL DEFAULT '', 
    `notes` MEDIUMTEXT NOT NULL, 
    PRIMARY KEY (`id_team`), 
    INDEX `id_company` (`id_department`) 
) 
COLLATE='utf8_general_ci' 
ENGINE=InnoDB 
AUTO_INCREMENT=4; 


CREATE TABLE `hrm__companyjobtitle` (
    `id_job_title` INT(11) NOT NULL AUTO_INCREMENT, 
    `id_team` INT(11) NOT NULL DEFAULT '0', 
    `job_title_name` VARCHAR(255) NOT NULL DEFAULT '', 
    `notes` MEDIUMTEXT NOT NULL, 
    PRIMARY KEY (`id_job_title`), 
    INDEX `id_division` (`id_team`), 
    CONSTRAINT `hrm__companyJobTitle_ibfk_1` FOREIGN KEY (`id_team`) REFERENCES `hrm__companyteam` (`id_team`) ON DELETE CASCADE 
) 
COLLATE='utf8_general_ci' 
ENGINE=InnoDB 
AUTO_INCREMENT=4; 


INSERT INTO hrm__companyteam (id_team, id_department, team_name, notes) VALUES (1, 1, 'Sales', ''), (2, 2, 'Team no 1', ''); 

INSERT INTO hrm__companyjobtitle (id_job_title , id_team , job_title_name , notes) VALUES ('1', '1', 'IT', ''); 

,他們都成功地運行,沒有任何錯誤

+0

我仍然得到錯誤。是否可以因爲與另一個桌子有關係而與另一個桌子有關係? –

+0

是的,它可能是您的companydepartment表數據不具有數據 – Satya

+0

數據是有在所有相關的表,但STIL這個錯誤顯示出來 –

相關問題