繁体   English   中英

MySQL:为什么外键失败?

[英]MySQL: Why is Foreign Key failing?

尝试使用phpMyAdmin将一行插入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。 我哪里不看?

SQL语句和错误

在phpMyAdmin中输入密钥

这是我在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天,而且没有爱。 什么可能出错? 非常感谢您的参与。

检查插入的值是否存在于user_id中是否存在于staging_----------- users

也许这就是问题....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM