試圖插入使用phpMyAdmin一行到MySQL,它是我的失敗與錯誤:MySQL:爲什麼外鍵失敗?
#1452 - Cannot add or update a child row: a foreign key constraint fails (`staging`.`user_profiles`, CONSTRAINT `fk_user_profiles_users` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
想不通爲什麼。我在MySQL Workbench中創建了數據庫設計,並在開發中使用MySQL 5.7,現在不能與Percona服務器5.5一起使用。我不在哪裏看?
這是我在MySQL Workbench中創建的表結構(破折號用於遮掩客戶信息= P):
DROP TABLE IF EXISTS `staging_-----------`.`users` ;
CREATE TABLE IF NOT EXISTS `staging_-----------`.`users` (
`id` INT NOT NULL AUTO_INCREMENT,
`email` VARCHAR(255) NOT NULL,
`password` VARCHAR(128) NOT NULL,
`role` ENUM('admin', 'vet', 'client') NOT NULL,
PRIMARY KEY (`id`));
DROP TABLE IF EXISTS `staging_-----------`.`user_profiles` ;
CREATE TABLE IF NOT EXISTS `staging_-----------`.`user_profiles` (
`user_id` INT NOT NULL,
`address_one` VARCHAR(255) NULL,
`address_two` VARCHAR(255) NULL,
`age` INT NULL,
`sex` ENUM('m', 'f') NULL,
`first_name` VARCHAR(45) NULL,
`last_name` VARCHAR(45) NULL,
`city` VARCHAR(45) NULL,
`state` VARCHAR(45) NULL,
`zip` VARCHAR(6) NULL,
`phone` VARCHAR(45) NULL,
`photo` VARCHAR(255) NULL,
PRIMARY KEY (`user_id`),
INDEX `fk_user_profiles_users2_idx` (`user_id` ASC),
CONSTRAINT `fk_user_profiles_users`
FOREIGN KEY (`user_id`)
REFERENCES `staging_-----------`.`users` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
我一直試圖讓我的工作代碼現在再次運行2天,並且沒有愛。出了什麼問題?非常感謝您的參與。
試圖刪除一個主表,而孩子/引用表依然存在? – mishka
對不起,SQL成功刪除/創建表。只能使用'users'中的現有ID將行插入'user_profiles'。 –