我正在尝试使用一个外键创建 2 个表,但 mysql 说:
#1215 - Cannot add foreign key constraint. (users_gifts)
-- -----------------------------------------------------
-- Table `gifts`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `gifts` (
`gift_code` VARCHAR(15) NOT NULL,
`gift_redeemcredit` INT NOT NULL DEFAULT 0,
`gift_redeemurl` VARCHAR(200) NULL DEFAULT '#',
`gift_description` VARCHAR(75) NOT NULL,
`gift_expirydate` DATETIME NOT NULL,
PRIMARY KEY (`gift_code`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `users_gifts`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `users_gifts` (
`user_code` INT NOT NULL,
`gift_code` VARCHAR(15) NOT NULL,
`usergift_date` DATETIME NOT NULL,
INDEX `users_gifts_to_gifts_idx` (`gift_code` ASC),
CONSTRAINT `users_gifts_to_gifts`
FOREIGN KEY (`gift_code`)
REFERENCES `gifts` (`gift_code`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
最佳答案
您的代码中没有错误,但您可能已经创建了此外键。
在创建表格之前尝试一下。
ALTER TABLE `users_gifts` DROP FOREIGN KEY `users_gifts_to_gifts` ;
关于mysql - 创建表错误 MySQL Varchar 外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24549019/