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