Mysql 第150号。我不明白遗漏了什么
省表Mysql 第150号。我不明白遗漏了什么,mysql,Mysql,省表 CREATE TABLE IF NOT EXISTS `shmarket`.`PROVINCES` ( `provinceId` VARCHAR(6) NOT NULL, `name` VARCHAR(45) NOT NULL, PRIMARY KEY (`provinceId`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; 城市表 当我创建users表时,mysql显示er
CREATE TABLE IF NOT EXISTS `shmarket`.`PROVINCES` (
`provinceId` VARCHAR(6) NOT NULL,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`provinceId`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
城市表
当我创建users表时,mysql显示errno 150。我检查了几次代码,但它不工作。我用mysql workbench生成了这段代码,但也失败了。如果您使用的是InnoDB引擎,那么ON-DELETE设置默认值就是您的问题。以下是手册的摘录: 虽然MySQL服务器允许设置默认值,但InnoDB将其视为无效而拒绝。InnoDB表不允许使用此子句的CREATE TABLE和ALTER TABLE语句 您可以在DELETE CASCADE或DELETE SET NULL上使用,但不能在DELETE SET DEFAULT上使用。还有更多的信息 如果要关联不同类型的列,例如源表中的int和目标表中的BigInt,也会发生此错误 你可以跑
SHOW ENGINE INNODB STATUS
#1215-无法添加外键约束此处我无法添加外键?
CREATE TABLE IF NOT EXISTS `shmarket`.`CITIES` (
`cityId` VARCHAR(6) NOT NULL,
`name` VARCHAR(45) NOT NULL,
`PROVINCES_provinceId` VARCHAR(6) NOT NULL,
PRIMARY KEY (`cityId`),
INDEX `fk_CITIES_PROVINCES1_idx` (`PROVINCES_provinceId` ASC),
CONSTRAINT `fk_CITIES_PROVINCES1`
FOREIGN KEY (`PROVINCES_provinceId`)
REFERENCES `shmarket`.`PROVINCES` (`provinceId`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
-----------------------------------------------------
Table `shmarket`.`USERS`
-----------------------------------------------------
CREATE TABLE IF NOT EXISTS `shmarket`.`USERS` (
`userId` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`surname` VARCHAR(45) NOT NULL,
`email` VARCHAR(45) NOT NULL,
`password` VARCHAR(45) NOT NULL,
`registryDate` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`role` VARCHAR(6) NOT NULL,
`CITIES_cityId` VARCHAR(6) NOT NULL,
PRIMARY KEY (`userId`),
UNIQUE INDEX `email_UNIQUE` (`email` ASC),
INDEX `fk_USERS_CITIES1_idx` (`CITIES_cityId` ASC),
CONSTRAINT `fk_USERS_CITIES1`
FOREIGN KEY (`CITIES_cityId`)
REFERENCES `shmarket`.`CITIES` (`cityId`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SHOW ENGINE INNODB STATUS