サーバーにコードをプッシュしようとするたびにこのエラーメッセージが表示されます。MySQL Workbenchエラーコード:1215.外部キー制約を追加できません
私は外国人と主キーのデータ型を確認し、それらが一致しましたことを確認しましたが、私はまだ、次の表の問題を見つけることができませんしました:
-- -----------------------------------------------------
-- Table `testdb`.`Photo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `testdb`.`Photo` (
`nonprofit_photo_link` VARCHAR(255) NOT NULL DEFAULT 'empty',
`campaign_photo_link` VARCHAR(255) NOT NULL DEFAULT 'empty',
`photo_id` VARCHAR(40) NOT NULL,
`company_id` INT NOT NULL,
`date_created` DATETIME NOT NULL DEFAULT NOW(),
PRIMARY KEY (`nonprofit_photo_link`, `campaign_photo_link`),
INDEX `company_id_idx` (`company_id` ASC),
CONSTRAINT `company_id`
FOREIGN KEY (`company_id`)
REFERENCES `testdb`.`Company` (`company_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `testdb`.`Campaign`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `testdb`.`Campaign` (
`campaign_id` INT NOT NULL AUTO_INCREMENT,
`campaign_name` VARCHAR(100) NOT NULL,
`time_created` DATETIME NOT NULL DEFAULT NOW(),
`time_start` DATETIME NOT NULL,
`time_end` DATETIME NOT NULL,
`total_goal` DOUBLE(9,2) NOT NULL,
`description` TEXT NULL,
`category` VARCHAR(255) NULL,
`tax_deductable` ENUM('yes', 'no') NULL DEFAULT 'no',
`campaign_sponsorship` VARCHAR(100) NOT NULL,
`phone_number` VARCHAR(12) NULL,
`street_address` VARCHAR(255) NULL,
`city` VARCHAR(255) NOT NULL,
`state` VARCHAR(2) NOT NULL,
`zip_code` INT(11) NULL,
`amazon_link` TEXT NULL,
`amazon_quantity` INT NULL,
`total_donated` DOUBLE NOT NULL DEFAULT 0,
`donation_remainder` DOUBLE NULL,
`photo_link` VARCHAR(255) NOT NULL,
PRIMARY KEY (`campaign_id`),
INDEX `photo_link_idx` (`photo_link` ASC),
CONSTRAINT `photo_link`
FOREIGN KEY (`photo_link`)
REFERENCES `testdb`.`Photo` (`campaign_photo_link`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `testdb`.`Nonprofit`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `testdb`.`Nonprofit` (
`nonprofit_id` INT NOT NULL AUTO_INCREMENT,
`nonprofit_photo_link` VARCHAR(255) NOT NULL,
`state` VARCHAR(2) NOT NULL,
`nonprofit_name` VARCHAR(100) NOT NULL,
`street_address` VARCHAR(255) NULL,
`zip_code` INT(11) NULL,
`number_of_employees` INT NULL,
`type_of_business` VARCHAR(255) NULL,
`number_of_donors` INT NOT NULL DEFAULT 0,
`social_handle` VARCHAR(255) NULL,
`city` VARCHAR(255) NOT NULL,
INDEX `photo_link_idx` (`nonprofit_photo_link` ASC),
PRIMARY KEY (`nonprofit_id`),
CONSTRAINT `nonprofit_photo_link`
FOREIGN KEY (`nonprofit_photo_link`)
REFERENCES `testdb`.`Photo` (`nonprofit_photo_link`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
エラーコード:1215 。外部キー制約を追加することはできません
0.047秒
完全なエラースタックトレースを追加してください。 – tom
スキーマはキーワードですが、my_schemaという名前のデータベースを作成する必要があります。また、写真表も追加してください。 – tom
私はスキーマの実際の名前の代わりにそこにスキーマを置いていました。だから、そのエラーの問題ではありませんでした。私はまた、写真のテーブルが含まれています。 –